!pip install gdown
!gdown https://drive.google.com/uc?id=1hrHgANwgC8VyXLhXgxLYHTrILpeJ5bLl
!unzip /content/mars_and_moon.zip
Requirement already satisfied: gdown in /usr/local/lib/python3.10/dist-packages (4.6.6) Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from gdown) (3.13.1) Requirement already satisfied: requests[socks] in /usr/local/lib/python3.10/dist-packages (from gdown) (2.31.0) Requirement already satisfied: six in /usr/local/lib/python3.10/dist-packages (from gdown) (1.16.0) Requirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (from gdown) (4.66.1) Requirement already satisfied: beautifulsoup4 in /usr/local/lib/python3.10/dist-packages (from gdown) (4.11.2) Requirement already satisfied: soupsieve>1.2 in /usr/local/lib/python3.10/dist-packages (from beautifulsoup4->gdown) (2.5) Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (3.3.2) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (3.4) Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (2.0.7) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (2023.7.22) Requirement already satisfied: PySocks!=1.5.7,>=1.5.6 in /usr/local/lib/python3.10/dist-packages (from requests[socks]->gdown) (1.7.1) Downloading... From: https://drive.google.com/uc?id=1hrHgANwgC8VyXLhXgxLYHTrILpeJ5bLl To: /content/mars_and_moon.zip 100% 77.6M/77.6M [00:01<00:00, 56.1MB/s] Archive: /content/mars_and_moon.zip inflating: best.pt inflating: craters/test/images/010_png.rf.fcf5e274562ee69a325f9d7a0b30767f.jpg inflating: craters/test/images/015_png.rf.7d5b2091b6339c9480a171a59c52c3b9.jpg inflating: craters/test/images/019_png.rf.1930cd277f9bf0e3fa57f2dcfee0385f.jpg inflating: craters/test/images/04_png.rf.81a7d6cbeb9dc09e5a8ecd40e185fc92.jpg inflating: craters/test/images/mars_crater--100-_jpg.rf.a2ad5867efb2d73e86d9d980ca40a9fe.jpg inflating: craters/test/images/mars_crater--108-_jpg.rf.9395f473f249e064dbfea078e2519a17.jpg inflating: craters/test/images/mars_crater--116-_jpg.rf.2e550a693a8800808e68848484716b95.jpg inflating: craters/test/images/mars_crater--117-_jpg.rf.b412b6593d102c5f9dda7bce79bb815c.jpg inflating: craters/test/images/mars_crater--12-_jpg.rf.26060e7ca4ca8781bcaf011b9b70b7db.jpg inflating: craters/test/images/mars_crater--25-_jpg.rf.a06bfa24b404b064ead471f56d636e0e.jpg inflating: craters/test/images/mars_crater--31-_jpg.rf.5030dfd316db1570d5f2ad396fa87d4d.jpg inflating: craters/test/images/mars_crater--32-_jpg.rf.2f0302a2f32a7b05f5c55e3dac97f1ea.jpg inflating: craters/test/images/mars_crater--33-_jpg.rf.baf9c7be01ba1f4b954e0e5be0560c80.jpg inflating: craters/test/images/mars_crater--46-_jpg.rf.369e88a43859f97a595d2091746600f4.jpg inflating: craters/test/images/mars_crater--51-_jpg.rf.2f21cd1782f9da8bb8f1ada8efa134a7.jpg inflating: craters/test/images/mars_crater--60-_jpg.rf.df89b1f82e171f73f5402c29b6637aa8.jpg inflating: craters/test/images/mars_crater--65-_jpg.rf.34ab64f1f6ce5a4b360ea66eae77d4b9.jpg inflating: craters/test/images/mars_crater--66-_jpg.rf.85564f58f27e684c94c8a0e484cc289e.jpg inflating: craters/test/images/mars_crater--97-_jpg.rf.63347c2ec963cf5c4ab641e1ba872df1.jpg inflating: craters/test/labels/010_png.rf.fcf5e274562ee69a325f9d7a0b30767f.txt inflating: craters/test/labels/015_png.rf.7d5b2091b6339c9480a171a59c52c3b9.txt inflating: craters/test/labels/019_png.rf.1930cd277f9bf0e3fa57f2dcfee0385f.txt inflating: craters/test/labels/04_png.rf.81a7d6cbeb9dc09e5a8ecd40e185fc92.txt inflating: craters/test/labels/mars_crater--100-_jpg.rf.a2ad5867efb2d73e86d9d980ca40a9fe.txt inflating: craters/test/labels/mars_crater--108-_jpg.rf.9395f473f249e064dbfea078e2519a17.txt inflating: craters/test/labels/mars_crater--116-_jpg.rf.2e550a693a8800808e68848484716b95.txt inflating: craters/test/labels/mars_crater--117-_jpg.rf.b412b6593d102c5f9dda7bce79bb815c.txt inflating: craters/test/labels/mars_crater--12-_jpg.rf.26060e7ca4ca8781bcaf011b9b70b7db.txt inflating: craters/test/labels/mars_crater--25-_jpg.rf.a06bfa24b404b064ead471f56d636e0e.txt inflating: craters/test/labels/mars_crater--31-_jpg.rf.5030dfd316db1570d5f2ad396fa87d4d.txt inflating: craters/test/labels/mars_crater--32-_jpg.rf.2f0302a2f32a7b05f5c55e3dac97f1ea.txt inflating: craters/test/labels/mars_crater--33-_jpg.rf.baf9c7be01ba1f4b954e0e5be0560c80.txt inflating: craters/test/labels/mars_crater--46-_jpg.rf.369e88a43859f97a595d2091746600f4.txt inflating: craters/test/labels/mars_crater--51-_jpg.rf.2f21cd1782f9da8bb8f1ada8efa134a7.txt inflating: craters/test/labels/mars_crater--60-_jpg.rf.df89b1f82e171f73f5402c29b6637aa8.txt inflating: craters/test/labels/mars_crater--65-_jpg.rf.34ab64f1f6ce5a4b360ea66eae77d4b9.txt inflating: craters/test/labels/mars_crater--66-_jpg.rf.85564f58f27e684c94c8a0e484cc289e.txt inflating: craters/test/labels/mars_crater--97-_jpg.rf.63347c2ec963cf5c4ab641e1ba872df1.txt inflating: craters/train/images/011_png.rf.8ac312b4898f0106d10b76952a55d237.jpg inflating: craters/train/images/012_png.rf.64da6ff4c62638096ee6e5bf689706bc.jpg inflating: craters/train/images/013_png.rf.ee44d5aa33fd33a1ed62ae233180f505.jpg inflating: craters/train/images/016_png.rf.1973f9540ae7f672257609a8e5721ab3.jpg inflating: craters/train/images/017_png.rf.1504c0d3ecbf20af6bc5114ca197a0dd.jpg inflating: craters/train/images/018_png.rf.2d4eed5581681fe83830e51634befdaf.jpg inflating: craters/train/images/01_png.rf.4d2ebc5ed98ad1e69d667aadbce63d53.jpg inflating: craters/train/images/020_png.rf.ce87f4889d7441275135633392f98ed7.jpg inflating: craters/train/images/022_png.rf.00ae4e655a2774bada1e254641482935.jpg inflating: craters/train/images/02_png.rf.610687947e4c92f77e6462104ec4b924.jpg inflating: craters/train/images/03_png.rf.8f7b31e14642026833b7c0dcd1832862.jpg inflating: craters/train/images/05_png.rf.844343145246e51e66a345419e1862bf.jpg inflating: craters/train/images/06_png.rf.aaf8c66b9e4d5e99a3dc70bae7f62c07.jpg inflating: craters/train/images/07_png.rf.3fba5e95c6827aa6c4132e70f2086555.jpg inflating: craters/train/images/08_png.rf.944efdd0f108140b368d7ad2c37426df.jpg inflating: craters/train/images/09_png.rf.3b796e77a5f0036af4cd4413fcbe07a5.jpg inflating: craters/train/images/mars_crater--0-_jpg.rf.40c1dec94c66ab07d9da8c74fa58d6f8.jpg inflating: craters/train/images/mars_crater--10-_jpg.rf.585b1aa305997e3055e86fcac72a806b.jpg inflating: craters/train/images/mars_crater--101-_jpg.rf.8f4eb1c77ab9e64d2fd691a6e0fcd3ec.jpg inflating: craters/train/images/mars_crater--102-_jpg.rf.9cdbcc724e2e7baf5c5c17aed91c769b.jpg inflating: craters/train/images/mars_crater--103-_jpg.rf.61597458910fb0eed55b415c9cbac3bf.jpg inflating: craters/train/images/mars_crater--105-_jpg.rf.338dccc756e50430460dfb6f6191d1c5.jpg inflating: craters/train/images/mars_crater--106-_jpg.rf.05aa3dbbbdc9651cb8c51d26c2847805.jpg inflating: craters/train/images/mars_crater--109-_jpg.rf.29afc1137114a2b872f484326254e949.jpg inflating: craters/train/images/mars_crater--11-_jpg.rf.9e8de286e3d84938f34bb6bf35825343.jpg inflating: craters/train/images/mars_crater--110-_jpg.rf.593f6a3d9aed98e7a08955e700765222.jpg inflating: craters/train/images/mars_crater--111-_jpg.rf.215f88d6bd7a6d86560754be694fc2f3.jpg inflating: craters/train/images/mars_crater--113-_jpg.rf.a7713d55de03a1a7487429d414e1005c.jpg inflating: craters/train/images/mars_crater--118-_jpg.rf.0a8b3fb0e1332e576901e596ad55e30a.jpg inflating: craters/train/images/mars_crater--119-_jpg.rf.5cd500a3dcc977038a875b5115f9eda4.jpg inflating: craters/train/images/mars_crater--120-_jpg.rf.a870131b0b5974e8351a32ade2d5f0f3.jpg inflating: craters/train/images/mars_crater--14-_jpg.rf.e050bff73578e2a9ad30e339b898f839.jpg inflating: craters/train/images/mars_crater--15-_jpg.rf.c669035a909b835be84fa4fc67bf3f40.jpg inflating: craters/train/images/mars_crater--16-_jpg.rf.bf5f6796b4ec5d351b47efae2e866934.jpg inflating: craters/train/images/mars_crater--17-_jpg.rf.c051d4c804f2fed2aa32999cc9fd0b48.jpg inflating: craters/train/images/mars_crater--18-_jpg.rf.8214037c811619bbe37024a557c9251f.jpg inflating: craters/train/images/mars_crater--19-_jpg.rf.a9e7485a270816a553c3d7e0c3fddd30.jpg inflating: craters/train/images/mars_crater--2-_jpg.rf.a65bb7ee68968509ac0b28df75e1f251.jpg inflating: craters/train/images/mars_crater--20-_jpg.rf.cb4c2603f4a62bbe96328c29cec6d68e.jpg inflating: craters/train/images/mars_crater--21-_jpg.rf.63688e718106a9b061bb702a298e7a54.jpg inflating: craters/train/images/mars_crater--22-_jpg.rf.3ed23daa3923c22a459593cb449a7336.jpg inflating: craters/train/images/mars_crater--24-_jpg.rf.4614bb6844fda70ea8a3b4f515cb7e8f.jpg inflating: craters/train/images/mars_crater--26-_jpg.rf.e34074ddcd6c44fa17b7a7689f7ddfa4.jpg inflating: craters/train/images/mars_crater--27-_jpg.rf.158fc0c6a694bba2f0afa44fd76a7f5a.jpg inflating: craters/train/images/mars_crater--3-_jpg.rf.17bb27df5c5e6a501f790342675bc145.jpg inflating: craters/train/images/mars_crater--30-_jpg.rf.0fb68bf5aece1859bc5f080e66b4fef1.jpg inflating: craters/train/images/mars_crater--34-_jpg.rf.5617051b3d6a801330f8d4f7df9e3239.jpg inflating: craters/train/images/mars_crater--35-_jpg.rf.826bc4b2a3a69c48144834f40d92439f.jpg inflating: craters/train/images/mars_crater--36-_jpg.rf.0100a780ad4217b29c2dc9b46deec040.jpg inflating: craters/train/images/mars_crater--37-_jpg.rf.c2a35d9de333416eb4d6d8f0d6b3310a.jpg inflating: craters/train/images/mars_crater--38-_jpg.rf.e6f3636efb075ba61dafa478e6b21de2.jpg inflating: craters/train/images/mars_crater--39-_jpg.rf.dbcaca888781a42f7bb3ce2c922da228.jpg inflating: craters/train/images/mars_crater--4-_jpg.rf.b31f215c27d917bdb7c7c545db2bc36b.jpg inflating: craters/train/images/mars_crater--41-_jpg.rf.5b367c681ccf0dfa9c5fddf287926d83.jpg inflating: craters/train/images/mars_crater--42-_jpg.rf.0cea1f9d9cf45fb141abf4e9aaae4c84.jpg inflating: craters/train/images/mars_crater--43-_jpg.rf.27ea7a65603205e491bc439c1d654cf4.jpg inflating: craters/train/images/mars_crater--44-_jpg.rf.627a604f51a4479d1f1660c5cf2af5c4.jpg inflating: craters/train/images/mars_crater--45-_jpg.rf.d69fa5e159ad8e5fe17b96deaba99c18.jpg inflating: craters/train/images/mars_crater--48-_jpg.rf.cc5528a8dcf4a11085a0a01d5c9084bc.jpg inflating: craters/train/images/mars_crater--49-_jpg.rf.5ea4703986c80bcfa03f0f99e4067c6f.jpg inflating: craters/train/images/mars_crater--5-_jpg.rf.6acb650edc64d6e1a02a0eef00e95113.jpg inflating: craters/train/images/mars_crater--50-_jpg.rf.02be16d199897982df8e6ea8f3e5818f.jpg inflating: craters/train/images/mars_crater--52-_jpg.rf.1a227f21c518775052f847053022cd86.jpg inflating: craters/train/images/mars_crater--53-_jpg.rf.20acc76fad4fecd456d4b0e77c9bbbb1.jpg inflating: craters/train/images/mars_crater--54-_jpg.rf.2313c9f439999313bfb527534bbdc501.jpg inflating: craters/train/images/mars_crater--55-_jpg.rf.452ea46e23156b2c86433eb9054b1a6a.jpg inflating: craters/train/images/mars_crater--56-_jpg.rf.6f0dcbff4ea66014aef178b840d29238.jpg inflating: craters/train/images/mars_crater--57-_jpg.rf.a783aaeaf00ae5d57bec64438050285f.jpg inflating: craters/train/images/mars_crater--58-_jpg.rf.d668b2f63bd183cb629754db3ff6cf1f.jpg inflating: craters/train/images/mars_crater--59-_jpg.rf.4f609e19d4f7f9987f696183edd87e99.jpg inflating: craters/train/images/mars_crater--6-_jpg.rf.ebff635e74e807f0377c656009482d1c.jpg inflating: craters/train/images/mars_crater--61-_jpg.rf.1398b749af6c18cf177cc97396129bd0.jpg inflating: craters/train/images/mars_crater--62-_jpg.rf.18dd7779b62fb78d5f07060fec32079d.jpg inflating: craters/train/images/mars_crater--68-_jpg.rf.e503921bd751aed3cfd662cda03ab6b6.jpg inflating: craters/train/images/mars_crater--69-_jpg.rf.8677e1c58b60bd19c197032d3e749cda.jpg inflating: craters/train/images/mars_crater--7-_jpg.rf.84b2a78c125aa0230712626eb381a2b4.jpg inflating: craters/train/images/mars_crater--70-_jpg.rf.30c918cda3fcb18a9ff9ce047e0a93a0.jpg inflating: craters/train/images/mars_crater--71-_jpg.rf.3370d6bdc02cbe6643f7509228f2ee10.jpg inflating: craters/train/images/mars_crater--74-_jpg.rf.259a2b0955c98b2b468d63917ae13796.jpg inflating: craters/train/images/mars_crater--75-_jpg.rf.210df1cf8ebc1b962b63621720ecf926.jpg inflating: craters/train/images/mars_crater--76-_jpg.rf.050c14a337ce70de3519fe6049640831.jpg inflating: craters/train/images/mars_crater--77-_jpg.rf.64732a16676a6c3222f67571cf1d6618.jpg inflating: craters/train/images/mars_crater--78-_jpg.rf.d960fe84ae55c6b91be086d8e8a8ed32.jpg inflating: craters/train/images/mars_crater--8-_jpg.rf.85af0fa193ad2d5b0087dc48ec7341c6.jpg inflating: craters/train/images/mars_crater--80-_jpg.rf.55cff0d5b6e2587b15ba97e5f6a3a5f5.jpg inflating: craters/train/images/mars_crater--81-_jpg.rf.147703ba93a36a6a753992752f0a1789.jpg inflating: craters/train/images/mars_crater--82-_jpg.rf.c3ba3759df63259b6ba3df175475d3ce.jpg inflating: craters/train/images/mars_crater--83-_jpg.rf.3a468d2f7715d1cf73d5a31d385e0c34.jpg inflating: craters/train/images/mars_crater--84-_jpg.rf.dcfe6c285ac885441a1c95d818b188e1.jpg inflating: craters/train/images/mars_crater--85-_jpg.rf.344998b46a84deb2b8802cdae98c5282.jpg inflating: craters/train/images/mars_crater--86-_jpg.rf.81699898067809e7560109fb72a56670.jpg inflating: craters/train/images/mars_crater--87-_jpg.rf.649d603d5617ce66e4a9420539fbfebb.jpg inflating: craters/train/images/mars_crater--88-_jpg.rf.2f3b851dec48a94bfccc6519b4a45859.jpg inflating: craters/train/images/mars_crater--9-_jpg.rf.64378015a647ef92689e24ea103644cd.jpg inflating: craters/train/images/mars_crater--93-_jpg.rf.7426ac666cec74a8b0bc15d550b8699b.jpg inflating: craters/train/images/mars_crater--94-_jpg.rf.a1d59711147871b0498b03c2042c7b56.jpg inflating: craters/train/images/mars_crater--96-_jpg.rf.6dca8e5264f81785f8d718f92f9e4475.jpg inflating: craters/train/images/mars_crater--99-_jpg.rf.09682f4dbe2f52ffe890061454306153.jpg inflating: craters/train/labels.cache inflating: craters/train/labels/011_png.rf.8ac312b4898f0106d10b76952a55d237.txt inflating: craters/train/labels/012_png.rf.64da6ff4c62638096ee6e5bf689706bc.txt inflating: craters/train/labels/013_png.rf.ee44d5aa33fd33a1ed62ae233180f505.txt inflating: craters/train/labels/016_png.rf.1973f9540ae7f672257609a8e5721ab3.txt inflating: craters/train/labels/017_png.rf.1504c0d3ecbf20af6bc5114ca197a0dd.txt inflating: craters/train/labels/018_png.rf.2d4eed5581681fe83830e51634befdaf.txt inflating: craters/train/labels/01_png.rf.4d2ebc5ed98ad1e69d667aadbce63d53.txt inflating: craters/train/labels/020_png.rf.ce87f4889d7441275135633392f98ed7.txt inflating: craters/train/labels/022_png.rf.00ae4e655a2774bada1e254641482935.txt inflating: craters/train/labels/02_png.rf.610687947e4c92f77e6462104ec4b924.txt inflating: craters/train/labels/03_png.rf.8f7b31e14642026833b7c0dcd1832862.txt inflating: craters/train/labels/05_png.rf.844343145246e51e66a345419e1862bf.txt inflating: craters/train/labels/06_png.rf.aaf8c66b9e4d5e99a3dc70bae7f62c07.txt inflating: craters/train/labels/07_png.rf.3fba5e95c6827aa6c4132e70f2086555.txt inflating: craters/train/labels/08_png.rf.944efdd0f108140b368d7ad2c37426df.txt inflating: craters/train/labels/09_png.rf.3b796e77a5f0036af4cd4413fcbe07a5.txt inflating: craters/train/labels/mars_crater--0-_jpg.rf.40c1dec94c66ab07d9da8c74fa58d6f8.txt inflating: craters/train/labels/mars_crater--10-_jpg.rf.585b1aa305997e3055e86fcac72a806b.txt inflating: craters/train/labels/mars_crater--101-_jpg.rf.8f4eb1c77ab9e64d2fd691a6e0fcd3ec.txt inflating: craters/train/labels/mars_crater--102-_jpg.rf.9cdbcc724e2e7baf5c5c17aed91c769b.txt inflating: craters/train/labels/mars_crater--103-_jpg.rf.61597458910fb0eed55b415c9cbac3bf.txt inflating: craters/train/labels/mars_crater--105-_jpg.rf.338dccc756e50430460dfb6f6191d1c5.txt inflating: craters/train/labels/mars_crater--106-_jpg.rf.05aa3dbbbdc9651cb8c51d26c2847805.txt inflating: craters/train/labels/mars_crater--109-_jpg.rf.29afc1137114a2b872f484326254e949.txt inflating: craters/train/labels/mars_crater--11-_jpg.rf.9e8de286e3d84938f34bb6bf35825343.txt inflating: craters/train/labels/mars_crater--110-_jpg.rf.593f6a3d9aed98e7a08955e700765222.txt inflating: craters/train/labels/mars_crater--111-_jpg.rf.215f88d6bd7a6d86560754be694fc2f3.txt inflating: craters/train/labels/mars_crater--113-_jpg.rf.a7713d55de03a1a7487429d414e1005c.txt inflating: craters/train/labels/mars_crater--118-_jpg.rf.0a8b3fb0e1332e576901e596ad55e30a.txt inflating: craters/train/labels/mars_crater--119-_jpg.rf.5cd500a3dcc977038a875b5115f9eda4.txt inflating: craters/train/labels/mars_crater--120-_jpg.rf.a870131b0b5974e8351a32ade2d5f0f3.txt inflating: craters/train/labels/mars_crater--14-_jpg.rf.e050bff73578e2a9ad30e339b898f839.txt inflating: craters/train/labels/mars_crater--15-_jpg.rf.c669035a909b835be84fa4fc67bf3f40.txt inflating: craters/train/labels/mars_crater--16-_jpg.rf.bf5f6796b4ec5d351b47efae2e866934.txt inflating: craters/train/labels/mars_crater--17-_jpg.rf.c051d4c804f2fed2aa32999cc9fd0b48.txt inflating: craters/train/labels/mars_crater--18-_jpg.rf.8214037c811619bbe37024a557c9251f.txt inflating: craters/train/labels/mars_crater--19-_jpg.rf.a9e7485a270816a553c3d7e0c3fddd30.txt inflating: craters/train/labels/mars_crater--2-_jpg.rf.a65bb7ee68968509ac0b28df75e1f251.txt inflating: craters/train/labels/mars_crater--20-_jpg.rf.cb4c2603f4a62bbe96328c29cec6d68e.txt inflating: craters/train/labels/mars_crater--21-_jpg.rf.63688e718106a9b061bb702a298e7a54.txt inflating: craters/train/labels/mars_crater--22-_jpg.rf.3ed23daa3923c22a459593cb449a7336.txt inflating: craters/train/labels/mars_crater--24-_jpg.rf.4614bb6844fda70ea8a3b4f515cb7e8f.txt inflating: craters/train/labels/mars_crater--26-_jpg.rf.e34074ddcd6c44fa17b7a7689f7ddfa4.txt inflating: craters/train/labels/mars_crater--27-_jpg.rf.158fc0c6a694bba2f0afa44fd76a7f5a.txt inflating: craters/train/labels/mars_crater--3-_jpg.rf.17bb27df5c5e6a501f790342675bc145.txt inflating: craters/train/labels/mars_crater--30-_jpg.rf.0fb68bf5aece1859bc5f080e66b4fef1.txt inflating: craters/train/labels/mars_crater--34-_jpg.rf.5617051b3d6a801330f8d4f7df9e3239.txt inflating: craters/train/labels/mars_crater--35-_jpg.rf.826bc4b2a3a69c48144834f40d92439f.txt inflating: craters/train/labels/mars_crater--36-_jpg.rf.0100a780ad4217b29c2dc9b46deec040.txt inflating: craters/train/labels/mars_crater--37-_jpg.rf.c2a35d9de333416eb4d6d8f0d6b3310a.txt inflating: craters/train/labels/mars_crater--38-_jpg.rf.e6f3636efb075ba61dafa478e6b21de2.txt inflating: craters/train/labels/mars_crater--39-_jpg.rf.dbcaca888781a42f7bb3ce2c922da228.txt inflating: craters/train/labels/mars_crater--4-_jpg.rf.b31f215c27d917bdb7c7c545db2bc36b.txt inflating: craters/train/labels/mars_crater--41-_jpg.rf.5b367c681ccf0dfa9c5fddf287926d83.txt inflating: craters/train/labels/mars_crater--42-_jpg.rf.0cea1f9d9cf45fb141abf4e9aaae4c84.txt inflating: craters/train/labels/mars_crater--43-_jpg.rf.27ea7a65603205e491bc439c1d654cf4.txt inflating: craters/train/labels/mars_crater--44-_jpg.rf.627a604f51a4479d1f1660c5cf2af5c4.txt inflating: craters/train/labels/mars_crater--45-_jpg.rf.d69fa5e159ad8e5fe17b96deaba99c18.txt inflating: craters/train/labels/mars_crater--48-_jpg.rf.cc5528a8dcf4a11085a0a01d5c9084bc.txt inflating: craters/train/labels/mars_crater--49-_jpg.rf.5ea4703986c80bcfa03f0f99e4067c6f.txt inflating: craters/train/labels/mars_crater--5-_jpg.rf.6acb650edc64d6e1a02a0eef00e95113.txt inflating: craters/train/labels/mars_crater--50-_jpg.rf.02be16d199897982df8e6ea8f3e5818f.txt inflating: craters/train/labels/mars_crater--52-_jpg.rf.1a227f21c518775052f847053022cd86.txt inflating: craters/train/labels/mars_crater--53-_jpg.rf.20acc76fad4fecd456d4b0e77c9bbbb1.txt inflating: craters/train/labels/mars_crater--54-_jpg.rf.2313c9f439999313bfb527534bbdc501.txt inflating: craters/train/labels/mars_crater--55-_jpg.rf.452ea46e23156b2c86433eb9054b1a6a.txt inflating: craters/train/labels/mars_crater--56-_jpg.rf.6f0dcbff4ea66014aef178b840d29238.txt inflating: craters/train/labels/mars_crater--57-_jpg.rf.a783aaeaf00ae5d57bec64438050285f.txt inflating: craters/train/labels/mars_crater--58-_jpg.rf.d668b2f63bd183cb629754db3ff6cf1f.txt inflating: craters/train/labels/mars_crater--59-_jpg.rf.4f609e19d4f7f9987f696183edd87e99.txt inflating: craters/train/labels/mars_crater--6-_jpg.rf.ebff635e74e807f0377c656009482d1c.txt inflating: craters/train/labels/mars_crater--61-_jpg.rf.1398b749af6c18cf177cc97396129bd0.txt inflating: craters/train/labels/mars_crater--62-_jpg.rf.18dd7779b62fb78d5f07060fec32079d.txt inflating: craters/train/labels/mars_crater--68-_jpg.rf.e503921bd751aed3cfd662cda03ab6b6.txt inflating: craters/train/labels/mars_crater--69-_jpg.rf.8677e1c58b60bd19c197032d3e749cda.txt inflating: craters/train/labels/mars_crater--7-_jpg.rf.84b2a78c125aa0230712626eb381a2b4.txt inflating: craters/train/labels/mars_crater--70-_jpg.rf.30c918cda3fcb18a9ff9ce047e0a93a0.txt inflating: craters/train/labels/mars_crater--71-_jpg.rf.3370d6bdc02cbe6643f7509228f2ee10.txt inflating: craters/train/labels/mars_crater--74-_jpg.rf.259a2b0955c98b2b468d63917ae13796.txt inflating: craters/train/labels/mars_crater--75-_jpg.rf.210df1cf8ebc1b962b63621720ecf926.txt inflating: craters/train/labels/mars_crater--76-_jpg.rf.050c14a337ce70de3519fe6049640831.txt inflating: craters/train/labels/mars_crater--77-_jpg.rf.64732a16676a6c3222f67571cf1d6618.txt inflating: craters/train/labels/mars_crater--78-_jpg.rf.d960fe84ae55c6b91be086d8e8a8ed32.txt inflating: craters/train/labels/mars_crater--8-_jpg.rf.85af0fa193ad2d5b0087dc48ec7341c6.txt inflating: craters/train/labels/mars_crater--80-_jpg.rf.55cff0d5b6e2587b15ba97e5f6a3a5f5.txt inflating: craters/train/labels/mars_crater--81-_jpg.rf.147703ba93a36a6a753992752f0a1789.txt inflating: craters/train/labels/mars_crater--82-_jpg.rf.c3ba3759df63259b6ba3df175475d3ce.txt inflating: craters/train/labels/mars_crater--83-_jpg.rf.3a468d2f7715d1cf73d5a31d385e0c34.txt inflating: craters/train/labels/mars_crater--84-_jpg.rf.dcfe6c285ac885441a1c95d818b188e1.txt inflating: craters/train/labels/mars_crater--85-_jpg.rf.344998b46a84deb2b8802cdae98c5282.txt inflating: craters/train/labels/mars_crater--86-_jpg.rf.81699898067809e7560109fb72a56670.txt inflating: craters/train/labels/mars_crater--87-_jpg.rf.649d603d5617ce66e4a9420539fbfebb.txt inflating: craters/train/labels/mars_crater--88-_jpg.rf.2f3b851dec48a94bfccc6519b4a45859.txt inflating: craters/train/labels/mars_crater--9-_jpg.rf.64378015a647ef92689e24ea103644cd.txt inflating: craters/train/labels/mars_crater--93-_jpg.rf.7426ac666cec74a8b0bc15d550b8699b.txt inflating: craters/train/labels/mars_crater--94-_jpg.rf.a1d59711147871b0498b03c2042c7b56.txt inflating: craters/train/labels/mars_crater--96-_jpg.rf.6dca8e5264f81785f8d718f92f9e4475.txt inflating: craters/train/labels/mars_crater--99-_jpg.rf.09682f4dbe2f52ffe890061454306153.txt inflating: craters/valid/images/014_png.rf.6b86c8afeb3ebca92872fd966d076adc.jpg inflating: craters/valid/images/021_png.rf.575e0f1cb87a2cc439172de15816c2cc.jpg inflating: craters/valid/images/023_png.rf.0a3106bdcc8e64bba283f961db77c9ec.jpg inflating: craters/valid/images/024_png.rf.be24000681f4f356e2a027fb7ca0c552.jpg inflating: craters/valid/images/mars_crater--1-_png.rf.f1b399f95708fd0ce520f23c9944ed44.jpg inflating: craters/valid/images/mars_crater--104-_jpg.rf.2ff6036b976ac6bbba612dd48f144d4d.jpg inflating: craters/valid/images/mars_crater--107-_jpg.rf.eb0f7061ed8c8af8be0e8af6b97226b0.jpg inflating: craters/valid/images/mars_crater--115-_jpg.rf.8b1bf8c37395c894e88e543ccb4cc42f.jpg inflating: craters/valid/images/mars_crater--13-_jpg.rf.f6fc01f728dfec8b32ad59d696a1a08d.jpg inflating: craters/valid/images/mars_crater--2-_png.rf.08b565c861e9ac03e3cd1f9b0a6cddbe.jpg inflating: craters/valid/images/mars_crater--23-_jpg.rf.ab2b0f47006c0c17260c312215dcfb88.jpg inflating: craters/valid/images/mars_crater--28-_jpg.rf.8a4c9991d6739123bd0cbf018ea6f50d.jpg inflating: craters/valid/images/mars_crater--29-_jpg.rf.719ff6d6c1aafd71147c173f7d224018.jpg inflating: craters/valid/images/mars_crater--40-_jpg.rf.29e123c14a95b2e0fcdc93e9e8cff902.jpg inflating: craters/valid/images/mars_crater--47-_jpg.rf.63eed086b1d39dc52405a398229dc586.jpg inflating: craters/valid/images/mars_crater--63-_jpg.rf.ab0440022651f886c68744a55eb215d9.jpg inflating: craters/valid/images/mars_crater--64-_jpg.rf.fd0838698f86dd546cdfcfea987b98b2.jpg inflating: craters/valid/images/mars_crater--67-_jpg.rf.cf856f9fde7eb10f7f1524ebb0024502.jpg inflating: craters/valid/images/mars_crater--72-_jpg.rf.4e01fbde7746b57082310e11b1ff03e2.jpg inflating: craters/valid/images/mars_crater--73-_jpg.rf.91d7dc2cc9ae2d5dee41207d8992c3b3.jpg inflating: craters/valid/images/mars_crater--79-_jpg.rf.984de20cb547cf4ee0324ebbf3fb7a88.jpg inflating: craters/valid/images/mars_crater--89-_jpg.rf.a57ed45379b066a537e1203ac9827a27.jpg inflating: craters/valid/images/mars_crater--91-_jpg.rf.9203caee622cf671580b91536e36e7e2.jpg inflating: craters/valid/images/mars_crater--92-_jpg.rf.608e45488b76786c69755a901c1b73c9.jpg inflating: craters/valid/images/mars_crater--95-_jpg.rf.671f7041e41a37f7faec12f3e9eb1d7d.jpg inflating: craters/valid/images/mars_crater--98-_jpg.rf.441572398e83f5d7769a8e57248c9248.jpg inflating: craters/valid/labels.cache inflating: craters/valid/labels/014_png.rf.6b86c8afeb3ebca92872fd966d076adc.txt inflating: craters/valid/labels/021_png.rf.575e0f1cb87a2cc439172de15816c2cc.txt inflating: craters/valid/labels/023_png.rf.0a3106bdcc8e64bba283f961db77c9ec.txt inflating: craters/valid/labels/024_png.rf.be24000681f4f356e2a027fb7ca0c552.txt inflating: craters/valid/labels/mars_crater--1-_png.rf.f1b399f95708fd0ce520f23c9944ed44.txt inflating: craters/valid/labels/mars_crater--104-_jpg.rf.2ff6036b976ac6bbba612dd48f144d4d.txt inflating: craters/valid/labels/mars_crater--107-_jpg.rf.eb0f7061ed8c8af8be0e8af6b97226b0.txt inflating: craters/valid/labels/mars_crater--115-_jpg.rf.8b1bf8c37395c894e88e543ccb4cc42f.txt inflating: craters/valid/labels/mars_crater--13-_jpg.rf.f6fc01f728dfec8b32ad59d696a1a08d.txt inflating: craters/valid/labels/mars_crater--2-_png.rf.08b565c861e9ac03e3cd1f9b0a6cddbe.txt inflating: craters/valid/labels/mars_crater--23-_jpg.rf.ab2b0f47006c0c17260c312215dcfb88.txt inflating: craters/valid/labels/mars_crater--28-_jpg.rf.8a4c9991d6739123bd0cbf018ea6f50d.txt inflating: craters/valid/labels/mars_crater--29-_jpg.rf.719ff6d6c1aafd71147c173f7d224018.txt inflating: craters/valid/labels/mars_crater--40-_jpg.rf.29e123c14a95b2e0fcdc93e9e8cff902.txt inflating: craters/valid/labels/mars_crater--47-_jpg.rf.63eed086b1d39dc52405a398229dc586.txt inflating: craters/valid/labels/mars_crater--63-_jpg.rf.ab0440022651f886c68744a55eb215d9.txt inflating: craters/valid/labels/mars_crater--64-_jpg.rf.fd0838698f86dd546cdfcfea987b98b2.txt inflating: craters/valid/labels/mars_crater--67-_jpg.rf.cf856f9fde7eb10f7f1524ebb0024502.txt inflating: craters/valid/labels/mars_crater--72-_jpg.rf.4e01fbde7746b57082310e11b1ff03e2.txt inflating: craters/valid/labels/mars_crater--73-_jpg.rf.91d7dc2cc9ae2d5dee41207d8992c3b3.txt inflating: craters/valid/labels/mars_crater--79-_jpg.rf.984de20cb547cf4ee0324ebbf3fb7a88.txt inflating: craters/valid/labels/mars_crater--89-_jpg.rf.a57ed45379b066a537e1203ac9827a27.txt inflating: craters/valid/labels/mars_crater--91-_jpg.rf.9203caee622cf671580b91536e36e7e2.txt inflating: craters/valid/labels/mars_crater--92-_jpg.rf.608e45488b76786c69755a901c1b73c9.txt inflating: craters/valid/labels/mars_crater--95-_jpg.rf.671f7041e41a37f7faec12f3e9eb1d7d.txt inflating: craters/valid/labels/mars_crater--98-_jpg.rf.441572398e83f5d7769a8e57248c9248.txt
Una vez tenemos sus datos cargados, debemos instalar varios procesos y librerias. Ademas debemos pasar todos los datos proporcionados por Alberto a unas carpetas. El ultimo parrafo del siguiente codigo es a traves del cualguardo los datos en las carpetas nuevas, llamadas 'content/craters/valid/images', 'content/craters/train/images', content/craters/valid/labels' y content/craters/train/labels'.
!git clone https://github.com/pytorch/vision.git
!cd vision
!git checkout v0.8.2
!cp ./vision/references/detection/utils.py ./
!cp ./vision/references/detection/transforms.py ./
!cp ./vision/references/detection/coco_eval.py ./
!cp ./vision/references/detection/engine.py ./
!cp ./vision/references/detection/coco_utils.py ./
!pip install cython
# Install pycocotools, the version by default in Colab
!pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
!pip install -U albumentations
!pip install -U opencv-python
#Copy and unify the train and validation datasets into one folder for images and another for labels
!mkdir ./train
!cp -a /content/craters/train/images/. ./train/images/
!cp -a /content/craters/valid/images/. ./valid/images/
!cp -a /content/craters/train/labels/. ./train/labels/
!cp -a /content/craters/valid/labels/. ./valid/labels/
Cloning into 'vision'...
remote: Enumerating objects: 423858, done.
remote: Counting objects: 100% (4320/4320), done.
remote: Compressing objects: 100% (257/257), done.
remote: Total 423858 (delta 4080), reused 4279 (delta 4057), pack-reused 419538
Receiving objects: 100% (423858/423858), 838.25 MiB | 26.22 MiB/s, done.
Resolving deltas: 100% (393176/393176), done.
fatal: not a git repository (or any of the parent directories): .git
Requirement already satisfied: cython in /usr/local/lib/python3.10/dist-packages (3.0.5)
Collecting git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI
Cloning https://github.com/cocodataset/cocoapi.git to /tmp/pip-req-build-y55__kdp
Running command git clone --filter=blob:none --quiet https://github.com/cocodataset/cocoapi.git /tmp/pip-req-build-y55__kdp
Resolved https://github.com/cocodataset/cocoapi.git to commit 8c9bcc3cf640524c4c20a9c40e89cb6a2f2fa0e9
Preparing metadata (setup.py) ... done
Requirement already satisfied: setuptools>=18.0 in /usr/local/lib/python3.10/dist-packages (from pycocotools==2.0) (67.7.2)
Requirement already satisfied: cython>=0.27.3 in /usr/local/lib/python3.10/dist-packages (from pycocotools==2.0) (3.0.5)
Requirement already satisfied: matplotlib>=2.1.0 in /usr/local/lib/python3.10/dist-packages (from pycocotools==2.0) (3.7.1)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (1.2.0)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (4.44.0)
Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (1.4.5)
Requirement already satisfied: numpy>=1.20 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (1.23.5)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (23.2)
Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (9.4.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (3.1.1)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=2.1.0->pycocotools==2.0) (2.8.2)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=2.1.0->pycocotools==2.0) (1.16.0)
Building wheels for collected packages: pycocotools
Building wheel for pycocotools (setup.py) ... done
Created wheel for pycocotools: filename=pycocotools-2.0-cp310-cp310-linux_x86_64.whl size=375457 sha256=bfb7d974f96e94e3511795e9d85953bd20e764b55b054cceb8495a1433c1e2ad
Stored in directory: /tmp/pip-ephem-wheel-cache-omnkt8ra/wheels/39/61/b4/480fbddb4d3d6bc34083e7397bc6f5d1381f79acc68e9f3511
Successfully built pycocotools
Installing collected packages: pycocotools
Attempting uninstall: pycocotools
Found existing installation: pycocotools 2.0.7
Uninstalling pycocotools-2.0.7:
Successfully uninstalled pycocotools-2.0.7
Successfully installed pycocotools-2.0
Requirement already satisfied: albumentations in /usr/local/lib/python3.10/dist-packages (1.3.1)
Requirement already satisfied: numpy>=1.11.1 in /usr/local/lib/python3.10/dist-packages (from albumentations) (1.23.5)
Requirement already satisfied: scipy>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from albumentations) (1.11.3)
Requirement already satisfied: scikit-image>=0.16.1 in /usr/local/lib/python3.10/dist-packages (from albumentations) (0.19.3)
Requirement already satisfied: PyYAML in /usr/local/lib/python3.10/dist-packages (from albumentations) (6.0.1)
Requirement already satisfied: qudida>=0.0.4 in /usr/local/lib/python3.10/dist-packages (from albumentations) (0.0.4)
Requirement already satisfied: opencv-python-headless>=4.1.1 in /usr/local/lib/python3.10/dist-packages (from albumentations) (4.8.1.78)
Requirement already satisfied: scikit-learn>=0.19.1 in /usr/local/lib/python3.10/dist-packages (from qudida>=0.0.4->albumentations) (1.2.2)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.10/dist-packages (from qudida>=0.0.4->albumentations) (4.5.0)
Requirement already satisfied: networkx>=2.2 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.16.1->albumentations) (3.2.1)
Requirement already satisfied: pillow!=7.1.0,!=7.1.1,!=8.3.0,>=6.1.0 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.16.1->albumentations) (9.4.0)
Requirement already satisfied: imageio>=2.4.1 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.16.1->albumentations) (2.31.6)
Requirement already satisfied: tifffile>=2019.7.26 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.16.1->albumentations) (2023.9.26)
Requirement already satisfied: PyWavelets>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.16.1->albumentations) (1.4.1)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from scikit-image>=0.16.1->albumentations) (23.2)
Requirement already satisfied: joblib>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.19.1->qudida>=0.0.4->albumentations) (1.3.2)
Requirement already satisfied: threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from scikit-learn>=0.19.1->qudida>=0.0.4->albumentations) (3.2.0)
Requirement already satisfied: opencv-python in /usr/local/lib/python3.10/dist-packages (4.8.0.76)
Collecting opencv-python
Downloading opencv_python-4.8.1.78-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (61.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.7/61.7 MB 10.2 MB/s eta 0:00:00
Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.10/dist-packages (from opencv-python) (1.23.5)
Installing collected packages: opencv-python
Attempting uninstall: opencv-python
Found existing installation: opencv-python 4.8.0.76
Uninstalling opencv-python-4.8.0.76:
Successfully uninstalled opencv-python-4.8.0.76
Successfully installed opencv-python-4.8.1.78
cp: cannot create directory './valid/images/': No such file or directory
cp: cannot create directory './valid/labels/': No such file or directory
Una vez hemos hecho todo anterior importamos las siguientes librerias necesarias:
import os
import numpy as np
import torch
import torchvision
from torchvision.models.detection.faster_rcnn import FastRCNNPredictor
from engine import train_one_epoch
import utils
import transforms as T
import albumentations as A
import cv2
import time
from albumentations.pytorch.transforms import ToTensorV2
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from sklearn.model_selection import KFold
import random
Eliminamos la parte de evaluate, ya que no lo queremos usar en esta practica. Y en los siguientes códigos eliminamos todo lo relacionado con evaluate.
class CraterDataset(object):
def __init__(self, root, transforms):
self.root = root
self.transforms = transforms
# load all image files, sorting them to
# ensure that they are aligned
self.imgs = list(sorted(os.listdir(os.path.join(self.root, "images"))))
self.annots = list(sorted(os.listdir(os.path.join(self.root, "labels"))))
self.classes = ['Background','Crater']
# Converts boundry box formats, this version assumes single class only!
def convert_box_cord(self,bboxs, format_from, format_to, img_shape):
if format_from == 'normxywh':
if format_to == 'xyminmax':
xw = bboxs[:, (1, 3)] * img_shape[1]
yh = bboxs[:, (2, 4)] * img_shape[0]
xmin = xw[:, 0] - xw[:, 1] / 2
xmax = xw[:, 0] + xw[:, 1] / 2
ymin = yh[:, 0] - yh[:, 1] / 2
ymax = yh[:, 0] + yh[:, 1] / 2
coords_converted = np.column_stack((xmin, ymin, xmax, ymax))
return coords_converted
def __getitem__(self, idx):
# load images and boxes
img_path = os.path.join(self.root, "images", self.imgs[idx])
annot_path = os.path.join(self.root, "labels", self.annots[idx])
img = cv2.imread(img_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB).astype(np.float32)
img= img/255.0
# retrieve bbox list and format to required type,
# if annotation file is empty, fill dummy box with label 0
if os.path.getsize(annot_path) != 0:
bboxs = np.loadtxt(annot_path, ndmin=2)
bboxs = self.convert_box_cord(bboxs, 'normxywh', 'xyminmax', img.shape)
num_objs = len(bboxs)
bboxs = torch.as_tensor(bboxs, dtype=torch.float32)
# there is only one class
labels = torch.ones((num_objs,), dtype=torch.int64)
# suppose all instances are not crowd
iscrowd = torch.zeros((num_objs,), dtype=torch.int64)
else:
bboxs = torch.as_tensor([[0, 0, 640, 640]], dtype=torch.float32)
labels = torch.zeros((1,), dtype=torch.int64)
iscrowd = torch.zeros((1,), dtype=torch.int64)
area = (bboxs[:, 3] - bboxs[:, 1]) * (bboxs[:, 2] - bboxs[:, 0])
image_id = torch.tensor([idx])
target = {}
target["boxes"] = bboxs
target["labels"] = labels
target["image_id"] = image_id
target["area"] = area
target["iscrowd"] = iscrowd
if self.transforms is not None:
sample = self.transforms(image=img,
bboxes=target['boxes'],
labels=labels)
img = sample['image']
target['boxes'] = torch.tensor(sample['bboxes'])
target['labels'] = torch.tensor(sample['labels'])
if target['boxes'].ndim == 1:
target['boxes'] = torch.as_tensor([[0, 0, 640, 640]], dtype=torch.float32)
target['labels'] = torch.zeros((1,), dtype=torch.int64)
return img, target
def __len__(self):
return len(self.imgs)
Dentro de este codigo podemos encontrar diversas funciones:
Inicializacion: init --> empieza la inicializacion de los objetos que van a ser procesados. Root --> hace referencia al directorio en el que se encuentran las etiquetas e imagenes. Transforms --> transforma una cadena de datos.
Conversión de Cuadros Delimitadores: El método convert_box_cord lo utilizamos para convertir las coordenadas de los cuadros delimitadores de un formato ('normxywh') a otro formato ('xyminmax'). Esta función convierte los cuadros delimitadores de coordenadas normalizadas (coordenadas del centro y ancho/alto) al formato con (x_min, y_min, x_max, y_max).
El metodo getitem arga una imagen y los cuadros dleimitadores. Además calcula el área de los cuadros delimitadores y construye un diccionario (target) que contiene la información de la imagen y las anotaciones.
Método len:longitud del conjunto de datos, que es el número de imágenes en el conjunto de datos.
def get_model_bbox(num_classes):
# load an instance segmentation model pre-trained on COCO
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)
# get number of input features for the classifier
in_features = model.roi_heads.box_predictor.cls_score.in_features
# replace the pre-trained head with a new one
model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes)
return model
model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True): Este fragmento de código carga un modelo preentrenado de detección de objetos Faster R-CNN. El parámetro pretrained=True significa que se utilizarán los pesos preentrenados.
in_features = model.roi_heads.box_predictor.cls_score.in_features: Aquí, se obtiene el número de características de entrada para el clasificador en la cabeza del modelo.
model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes) --> implementación personalizada que toma el número de características de entrada (in_features) y el número de clases (num_classes) como argumentos.
Al final, la función devuelve el modelo modificado con el nuevo clasificador personalizado.
def get_transform(train):
if train:
return A.Compose([
# A.Flip(p=0.5),
# A.RandomResizedCrop(height=640,width=640,p=0.4),
# # A.Perspective(p=0.4),
# A.Rotate(p=0.5),
# # A.Transpose(p=0.3),
ToTensorV2(p=1.0)],
bbox_params=A.BboxParams(format='pascal_voc',min_visibility=0.4, label_fields=['labels']))
else:
return A.Compose([ToTensorV2(p=1.0)],
bbox_params=A.BboxParams(format='pascal_voc', min_visibility=0.5, label_fields=['labels']))
La función get_transform se utiliza para definir las transformaciones de datos que se aplicarán a las imágenes y las anotaciones de cuadros delimitadores.
Si train es True, se devuelve una lista de transformaciones de datos específicas para el entrenamiento, pero si train es False, se devuelve una lista de transformaciones de datos para la evaluación
En el codigo se aplica la transformacion ToTensorV2, que convierte la imagen y las anotaciones en tensores.
El 0,4 y el 0,5 hace referencia al tamo de los cuadros delimitadores
def reset_weights(m):
'''
Try resetting model weights to avoid
weight leakage.
'''
for layer in m.children():
if hasattr(layer, 'reset_parameters'):
print(f'Reset trainable parameters of layer = {layer}')
layer.reset_parameters()
La función reset_weights se utiliza para restablecer los pesos del modelo PyTorch.
# Function to visualize bounding boxes in the image
def plot_img_bbox(img, target):
# plot the image and bboxes
# Bounding boxes are defined as follows: x-min y-min width height
fig, a = plt.subplots(1, 1)
fig.set_size_inches(5, 5)
a.imshow(img.permute((1,2,0)))
for box in (target['boxes']):
x, y, width, height = box[0], box[1], box[2] - box[0], box[3] - box[1]
rect = patches.Rectangle((x, y),
width, height,
edgecolor='b',
facecolor='none',
clip_on=False)
a.annotate('Crater', (x,y-20), color='blue', weight='bold',
fontsize=10, ha='left', va='top')
# Draw the bounding box on top of the image
a.add_patch(rect)
plt.show()
La función plot_img_bbox se utiliza para visualizar imágenes junto con los cuadros delimitadores (bounding boxes) en la imagen.
La función toma dos argumentos: img, que representa la imagen en forma de tensor, y target, que es un diccionario que contiene información sobre las bounding boxes en la imagen. La figura tiene un tamaño de 5x5 pulgadas.
Se crea un rectángulo (rect) con los valores calculados y se le asigna un color de borde 'blue' y un relleno sin color ('none').
Se agrega un texto "Crater" cerca de la bounding box y se agrega el rectángulo al eje y se muestra la figura con la imagen y los cuadros delimitadores.
dataset = CraterDataset('/content/craters/train', get_transform(train=True))
# Prints an example of image with annotations
for i in random.sample(range(1, 100), 3):
img, target = dataset[i]
plot_img_bbox(img, target)
Hemos cambiado la ruta de acceso previa de kaggle por la nuestra denominada: /content/craters/train --> aqui es donde se encuentran los datos de entrenamiento.
Se crea una instancia del conjunto de datos CraterDataset. se utiliza la función get_transform(train=True) para aplicar transformaciones específicas para el entrenamiento.
# train on the GPU or on the CPU, if a GPU is not available
device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')
k_folds = 4
num_epochs = 20
# our dataset has two classes only - background and crater
num_classes = 2
# use our dataset and defined transformations
dataset = CraterDataset('/content/craters/train', get_transform(train=True))
dataset_val = CraterDataset('/content/craters/test', get_transform(train=False))
# Define the K-fold Cross Validator
kfold = KFold(n_splits=k_folds, shuffle=True)
# Start print
print('--------------------------------')
# K-fold Cross Validation model evaluation
for fold, (train_ids, val_ids) in enumerate(kfold.split(dataset)):
print(f'FOLD {fold}')
print('--------------------------------')
dataset_subset = torch.utils.data.Subset(dataset, list(train_ids))
dataset_val_subset = torch.utils.data.Subset(dataset_val, list(val_ids))
# define training and validation data loaders
data_loader = torch.utils.data.DataLoader(
dataset_subset, batch_size=8, shuffle=True, num_workers=2,
collate_fn=utils.collate_fn)
data_loader_val = torch.utils.data.DataLoader(
dataset_val_subset, batch_size=1, shuffle=False, num_workers=2,
collate_fn=utils.collate_fn)
# get the model using our helper function
model = get_model_bbox(num_classes)
#model.apply(reset_weights) # Check if beneficial
# move model to the right device
model.to(device)
# construct an optimizer
params = [p for p in model.parameters() if p.requires_grad]
optimizer = torch.optim.SGD(params, lr=0.005, # Check if beneficial
momentum=0.9, weight_decay=0)
# and a learning rate scheduler
lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer,
step_size=10,
gamma=0.1)
# let's train!
for epoch in range(num_epochs):
# train for one epoch, printing every 50 iterations
train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=50)
# update the learning rate
lr_scheduler.step()
-------------------------------- FOLD 0 --------------------------------
/usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead. warnings.warn( /usr/local/lib/python3.10/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=FasterRCNN_ResNet50_FPN_Weights.COCO_V1`. You can also use `weights=FasterRCNN_ResNet50_FPN_Weights.DEFAULT` to get the most up-to-date weights. warnings.warn(msg) Downloading: "https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth" to /root/.cache/torch/hub/checkpoints/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth 100%|██████████| 160M/160M [00:02<00:00, 81.8MB/s]
Epoch: [0] [ 0/10] eta: 0:01:35 lr: 0.000560 loss: 2.1633 (2.1633) loss_classifier: 0.6996 (0.6996) loss_box_reg: 0.2703 (0.2703) loss_objectness: 1.1158 (1.1158) loss_rpn_box_reg: 0.0775 (0.0775) time: 9.5091 data: 0.3423 max mem: 7206 Epoch: [0] [ 9/10] eta: 0:00:02 lr: 0.005000 loss: 0.9463 (1.3159) loss_classifier: 0.3389 (0.4858) loss_box_reg: 0.3303 (0.3677) loss_objectness: 0.2472 (0.4091) loss_rpn_box_reg: 0.0539 (0.0532) time: 2.1100 data: 0.0625 max mem: 7365 Epoch: [0] Total time: 0:00:21 (2.1150 s / it) Epoch: [1] [ 0/10] eta: 0:00:17 lr: 0.005000 loss: 0.7051 (0.7051) loss_classifier: 0.2609 (0.2609) loss_box_reg: 0.2964 (0.2964) loss_objectness: 0.0842 (0.0842) loss_rpn_box_reg: 0.0636 (0.0636) time: 1.7999 data: 0.3730 max mem: 7366 Epoch: [1] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.7051 (0.7190) loss_classifier: 0.2441 (0.2310) loss_box_reg: 0.3450 (0.3324) loss_objectness: 0.0790 (0.1008) loss_rpn_box_reg: 0.0469 (0.0548) time: 1.3927 data: 0.0722 max mem: 7366 Epoch: [1] Total time: 0:00:13 (1.3991 s / it) Epoch: [2] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.7969 (0.7969) loss_classifier: 0.2527 (0.2527) loss_box_reg: 0.4441 (0.4441) loss_objectness: 0.0574 (0.0574) loss_rpn_box_reg: 0.0427 (0.0427) time: 1.9029 data: 0.4460 max mem: 7366 Epoch: [2] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.5569 (0.5792) loss_classifier: 0.1671 (0.1779) loss_box_reg: 0.2646 (0.2945) loss_objectness: 0.0574 (0.0658) loss_rpn_box_reg: 0.0367 (0.0409) time: 1.3747 data: 0.0696 max mem: 7368 Epoch: [2] Total time: 0:00:13 (1.3810 s / it) Epoch: [3] [ 0/10] eta: 0:00:18 lr: 0.005000 loss: 0.2686 (0.2686) loss_classifier: 0.0906 (0.0906) loss_box_reg: 0.1299 (0.1299) loss_objectness: 0.0399 (0.0399) loss_rpn_box_reg: 0.0082 (0.0082) time: 1.8369 data: 0.3775 max mem: 7368 Epoch: [3] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4197 (0.4516) loss_classifier: 0.1443 (0.1468) loss_box_reg: 0.2137 (0.2281) loss_objectness: 0.0435 (0.0466) loss_rpn_box_reg: 0.0235 (0.0302) time: 1.3851 data: 0.0668 max mem: 7368 Epoch: [3] Total time: 0:00:13 (1.3923 s / it) Epoch: [4] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.6535 (0.6535) loss_classifier: 0.1986 (0.1986) loss_box_reg: 0.3362 (0.3362) loss_objectness: 0.0623 (0.0623) loss_rpn_box_reg: 0.0564 (0.0564) time: 1.9005 data: 0.4175 max mem: 7368 Epoch: [4] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3968 (0.4416) loss_classifier: 0.1286 (0.1419) loss_box_reg: 0.2003 (0.2354) loss_objectness: 0.0296 (0.0366) loss_rpn_box_reg: 0.0188 (0.0277) time: 1.3927 data: 0.0666 max mem: 7368 Epoch: [4] Total time: 0:00:13 (1.3991 s / it) Epoch: [5] [ 0/10] eta: 0:00:18 lr: 0.005000 loss: 0.3337 (0.3337) loss_classifier: 0.1105 (0.1105) loss_box_reg: 0.1876 (0.1876) loss_objectness: 0.0159 (0.0159) loss_rpn_box_reg: 0.0197 (0.0197) time: 1.8582 data: 0.3788 max mem: 7368 Epoch: [5] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3635 (0.3582) loss_classifier: 0.1209 (0.1195) loss_box_reg: 0.1876 (0.1882) loss_objectness: 0.0229 (0.0274) loss_rpn_box_reg: 0.0197 (0.0231) time: 1.4140 data: 0.0666 max mem: 7368 Epoch: [5] Total time: 0:00:14 (1.4204 s / it) Epoch: [6] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.3542 (0.3542) loss_classifier: 0.1085 (0.1085) loss_box_reg: 0.2032 (0.2032) loss_objectness: 0.0189 (0.0189) loss_rpn_box_reg: 0.0236 (0.0236) time: 1.9235 data: 0.4034 max mem: 7368 Epoch: [6] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3572 (0.3743) loss_classifier: 0.1130 (0.1212) loss_box_reg: 0.2032 (0.2001) loss_objectness: 0.0222 (0.0263) loss_rpn_box_reg: 0.0222 (0.0267) time: 1.4322 data: 0.0661 max mem: 7368 Epoch: [6] Total time: 0:00:14 (1.4386 s / it) Epoch: [7] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.4343 (0.4343) loss_classifier: 0.1264 (0.1264) loss_box_reg: 0.2740 (0.2740) loss_objectness: 0.0177 (0.0177) loss_rpn_box_reg: 0.0162 (0.0162) time: 1.9248 data: 0.3894 max mem: 7368 Epoch: [7] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3115 (0.3373) loss_classifier: 0.0960 (0.1051) loss_box_reg: 0.1714 (0.1853) loss_objectness: 0.0182 (0.0221) loss_rpn_box_reg: 0.0152 (0.0248) time: 1.4551 data: 0.0677 max mem: 7368 Epoch: [7] Total time: 0:00:14 (1.4635 s / it) Epoch: [8] [ 0/10] eta: 0:00:23 lr: 0.005000 loss: 0.2150 (0.2150) loss_classifier: 0.0760 (0.0760) loss_box_reg: 0.1117 (0.1117) loss_objectness: 0.0130 (0.0130) loss_rpn_box_reg: 0.0143 (0.0143) time: 2.3488 data: 0.7821 max mem: 7368 Epoch: [8] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.2913 (0.3115) loss_classifier: 0.0845 (0.0983) loss_box_reg: 0.1557 (0.1719) loss_objectness: 0.0167 (0.0183) loss_rpn_box_reg: 0.0190 (0.0230) time: 1.4862 data: 0.1045 max mem: 7368 Epoch: [8] Total time: 0:00:14 (1.4981 s / it) Epoch: [9] [ 0/10] eta: 0:00:20 lr: 0.005000 loss: 0.2247 (0.2247) loss_classifier: 0.0835 (0.0835) loss_box_reg: 0.1145 (0.1145) loss_objectness: 0.0137 (0.0137) loss_rpn_box_reg: 0.0129 (0.0129) time: 2.0950 data: 0.5438 max mem: 7368 Epoch: [9] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3267 (0.2954) loss_classifier: 0.0938 (0.0957) loss_box_reg: 0.1765 (0.1680) loss_objectness: 0.0102 (0.0143) loss_rpn_box_reg: 0.0129 (0.0175) time: 1.4422 data: 0.0819 max mem: 7368 Epoch: [9] Total time: 0:00:14 (1.4492 s / it) Epoch: [10] [ 0/10] eta: 0:00:18 lr: 0.000500 loss: 0.2231 (0.2231) loss_classifier: 0.0717 (0.0717) loss_box_reg: 0.1318 (0.1318) loss_objectness: 0.0072 (0.0072) loss_rpn_box_reg: 0.0123 (0.0123) time: 1.8416 data: 0.3458 max mem: 7368 Epoch: [10] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2231 (0.2712) loss_classifier: 0.0759 (0.0840) loss_box_reg: 0.1318 (0.1565) loss_objectness: 0.0117 (0.0146) loss_rpn_box_reg: 0.0123 (0.0161) time: 1.4180 data: 0.0630 max mem: 7368 Epoch: [10] Total time: 0:00:14 (1.4248 s / it) Epoch: [11] [ 0/10] eta: 0:00:18 lr: 0.000500 loss: 0.3061 (0.3061) loss_classifier: 0.0887 (0.0887) loss_box_reg: 0.1851 (0.1851) loss_objectness: 0.0143 (0.0143) loss_rpn_box_reg: 0.0179 (0.0179) time: 1.8543 data: 0.3619 max mem: 7368 Epoch: [11] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2460 (0.2648) loss_classifier: 0.0741 (0.0830) loss_box_reg: 0.1425 (0.1521) loss_objectness: 0.0111 (0.0133) loss_rpn_box_reg: 0.0116 (0.0164) time: 1.4172 data: 0.0651 max mem: 7368 Epoch: [11] Total time: 0:00:14 (1.4241 s / it) Epoch: [12] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2135 (0.2135) loss_classifier: 0.0775 (0.0775) loss_box_reg: 0.1223 (0.1223) loss_objectness: 0.0082 (0.0082) loss_rpn_box_reg: 0.0055 (0.0055) time: 1.9077 data: 0.3810 max mem: 7368 Epoch: [12] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2460 (0.2891) loss_classifier: 0.0775 (0.0899) loss_box_reg: 0.1446 (0.1676) loss_objectness: 0.0121 (0.0146) loss_rpn_box_reg: 0.0118 (0.0170) time: 1.4305 data: 0.0669 max mem: 7368 Epoch: [12] Total time: 0:00:14 (1.4372 s / it) Epoch: [13] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1876 (0.1876) loss_classifier: 0.0675 (0.0675) loss_box_reg: 0.1059 (0.1059) loss_objectness: 0.0064 (0.0064) loss_rpn_box_reg: 0.0077 (0.0077) time: 1.9390 data: 0.4246 max mem: 7368 Epoch: [13] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2026 (0.2522) loss_classifier: 0.0675 (0.0793) loss_box_reg: 0.1296 (0.1452) loss_objectness: 0.0095 (0.0118) loss_rpn_box_reg: 0.0125 (0.0160) time: 1.4392 data: 0.0687 max mem: 7368 Epoch: [13] Total time: 0:00:14 (1.4459 s / it) Epoch: [14] [ 0/10] eta: 0:00:18 lr: 0.000500 loss: 0.2396 (0.2396) loss_classifier: 0.0830 (0.0830) loss_box_reg: 0.1219 (0.1219) loss_objectness: 0.0176 (0.0176) loss_rpn_box_reg: 0.0172 (0.0172) time: 1.8803 data: 0.3688 max mem: 7368 Epoch: [14] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2482 (0.2748) loss_classifier: 0.0830 (0.0839) loss_box_reg: 0.1490 (0.1586) loss_objectness: 0.0136 (0.0149) loss_rpn_box_reg: 0.0121 (0.0175) time: 1.4323 data: 0.0670 max mem: 7368 Epoch: [14] Total time: 0:00:14 (1.4392 s / it) Epoch: [15] [ 0/10] eta: 0:00:18 lr: 0.000500 loss: 0.3369 (0.3369) loss_classifier: 0.1009 (0.1009) loss_box_reg: 0.2007 (0.2007) loss_objectness: 0.0187 (0.0187) loss_rpn_box_reg: 0.0165 (0.0165) time: 1.8934 data: 0.3813 max mem: 7368 Epoch: [15] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2401 (0.2613) loss_classifier: 0.0753 (0.0836) loss_box_reg: 0.1403 (0.1483) loss_objectness: 0.0115 (0.0139) loss_rpn_box_reg: 0.0103 (0.0155) time: 1.4289 data: 0.0666 max mem: 7368 Epoch: [15] Total time: 0:00:14 (1.4358 s / it) Epoch: [16] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1549 (0.1549) loss_classifier: 0.0483 (0.0483) loss_box_reg: 0.0792 (0.0792) loss_objectness: 0.0132 (0.0132) loss_rpn_box_reg: 0.0142 (0.0142) time: 1.9065 data: 0.3851 max mem: 7368 Epoch: [16] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2408 (0.2520) loss_classifier: 0.0660 (0.0780) loss_box_reg: 0.1433 (0.1450) loss_objectness: 0.0107 (0.0134) loss_rpn_box_reg: 0.0148 (0.0157) time: 1.4357 data: 0.0675 max mem: 7368 Epoch: [16] Total time: 0:00:14 (1.4463 s / it) Epoch: [17] [ 0/10] eta: 0:00:21 lr: 0.000500 loss: 0.1922 (0.1922) loss_classifier: 0.0691 (0.0691) loss_box_reg: 0.1052 (0.1052) loss_objectness: 0.0127 (0.0127) loss_rpn_box_reg: 0.0052 (0.0052) time: 2.1587 data: 0.5489 max mem: 7368 Epoch: [17] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2337 (0.2398) loss_classifier: 0.0695 (0.0767) loss_box_reg: 0.1359 (0.1353) loss_objectness: 0.0144 (0.0131) loss_rpn_box_reg: 0.0120 (0.0147) time: 1.4502 data: 0.0842 max mem: 7368 Epoch: [17] Total time: 0:00:14 (1.4627 s / it) Epoch: [18] [ 0/10] eta: 0:00:20 lr: 0.000500 loss: 0.3238 (0.3238) loss_classifier: 0.0935 (0.0935) loss_box_reg: 0.1842 (0.1842) loss_objectness: 0.0203 (0.0203) loss_rpn_box_reg: 0.0258 (0.0258) time: 2.0473 data: 0.5312 max mem: 7368 Epoch: [18] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2476 (0.2460) loss_classifier: 0.0769 (0.0763) loss_box_reg: 0.1415 (0.1409) loss_objectness: 0.0106 (0.0139) loss_rpn_box_reg: 0.0100 (0.0149) time: 1.4388 data: 0.0808 max mem: 7369 Epoch: [18] Total time: 0:00:14 (1.4459 s / it) Epoch: [19] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2746 (0.2746) loss_classifier: 0.0950 (0.0950) loss_box_reg: 0.1521 (0.1521) loss_objectness: 0.0123 (0.0123) loss_rpn_box_reg: 0.0153 (0.0153) time: 1.9202 data: 0.4058 max mem: 7369 Epoch: [19] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2305 (0.2429) loss_classifier: 0.0744 (0.0785) loss_box_reg: 0.1309 (0.1372) loss_objectness: 0.0109 (0.0122) loss_rpn_box_reg: 0.0121 (0.0152) time: 1.4305 data: 0.0692 max mem: 7369 Epoch: [19] Total time: 0:00:14 (1.4381 s / it) FOLD 1 -------------------------------- Epoch: [0] [ 0/10] eta: 0:00:19 lr: 0.000560 loss: 1.9283 (1.9283) loss_classifier: 0.8330 (0.8330) loss_box_reg: 0.2836 (0.2836) loss_objectness: 0.7655 (0.7655) loss_rpn_box_reg: 0.0462 (0.0462) time: 1.9325 data: 0.4038 max mem: 7369 Epoch: [0] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.9705 (1.1390) loss_classifier: 0.3511 (0.4792) loss_box_reg: 0.2836 (0.3132) loss_objectness: 0.1757 (0.3052) loss_rpn_box_reg: 0.0462 (0.0415) time: 1.4367 data: 0.0680 max mem: 7369 Epoch: [0] Total time: 0:00:14 (1.4437 s / it) Epoch: [1] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 1.1435 (1.1435) loss_classifier: 0.4801 (0.4801) loss_box_reg: 0.5221 (0.5221) loss_objectness: 0.0966 (0.0966) loss_rpn_box_reg: 0.0447 (0.0447) time: 1.9740 data: 0.4459 max mem: 7369 Epoch: [1] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.6563 (0.7164) loss_classifier: 0.2193 (0.2454) loss_box_reg: 0.3252 (0.3277) loss_objectness: 0.0611 (0.0931) loss_rpn_box_reg: 0.0383 (0.0502) time: 1.4524 data: 0.0733 max mem: 7369 Epoch: [1] Total time: 0:00:14 (1.4597 s / it) Epoch: [2] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.5127 (0.5127) loss_classifier: 0.1644 (0.1644) loss_box_reg: 0.2620 (0.2620) loss_objectness: 0.0634 (0.0634) loss_rpn_box_reg: 0.0229 (0.0229) time: 1.9227 data: 0.4101 max mem: 7369 Epoch: [2] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.5127 (0.5133) loss_classifier: 0.1644 (0.1628) loss_box_reg: 0.2620 (0.2673) loss_objectness: 0.0501 (0.0521) loss_rpn_box_reg: 0.0285 (0.0311) time: 1.4370 data: 0.0683 max mem: 7369 Epoch: [2] Total time: 0:00:14 (1.4450 s / it) Epoch: [3] [ 0/10] eta: 0:00:18 lr: 0.005000 loss: 0.4061 (0.4061) loss_classifier: 0.1229 (0.1229) loss_box_reg: 0.2321 (0.2321) loss_objectness: 0.0375 (0.0375) loss_rpn_box_reg: 0.0136 (0.0136) time: 1.8805 data: 0.3734 max mem: 7369 Epoch: [3] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4741 (0.5146) loss_classifier: 0.1548 (0.1670) loss_box_reg: 0.2371 (0.2720) loss_objectness: 0.0361 (0.0394) loss_rpn_box_reg: 0.0219 (0.0361) time: 1.4314 data: 0.0657 max mem: 7369 Epoch: [3] Total time: 0:00:14 (1.4401 s / it) Epoch: [4] [ 0/10] eta: 0:00:21 lr: 0.005000 loss: 0.5659 (0.5659) loss_classifier: 0.1931 (0.1931) loss_box_reg: 0.3121 (0.3121) loss_objectness: 0.0384 (0.0384) loss_rpn_box_reg: 0.0222 (0.0222) time: 2.1337 data: 0.5672 max mem: 7369 Epoch: [4] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3988 (0.4149) loss_classifier: 0.1359 (0.1370) loss_box_reg: 0.2058 (0.2230) loss_objectness: 0.0320 (0.0308) loss_rpn_box_reg: 0.0221 (0.0241) time: 1.4560 data: 0.0834 max mem: 7369 Epoch: [4] Total time: 0:00:14 (1.4709 s / it) Epoch: [5] [ 0/10] eta: 0:00:22 lr: 0.005000 loss: 0.4179 (0.4179) loss_classifier: 0.1255 (0.1255) loss_box_reg: 0.2431 (0.2431) loss_objectness: 0.0171 (0.0171) loss_rpn_box_reg: 0.0322 (0.0322) time: 2.2487 data: 0.6627 max mem: 7369 Epoch: [5] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4039 (0.4198) loss_classifier: 0.1331 (0.1479) loss_box_reg: 0.2070 (0.2162) loss_objectness: 0.0281 (0.0305) loss_rpn_box_reg: 0.0218 (0.0253) time: 1.4656 data: 0.0957 max mem: 7369 Epoch: [5] Total time: 0:00:14 (1.4726 s / it) Epoch: [6] [ 0/10] eta: 0:00:18 lr: 0.005000 loss: 0.2496 (0.2496) loss_classifier: 0.0838 (0.0838) loss_box_reg: 0.1292 (0.1292) loss_objectness: 0.0182 (0.0182) loss_rpn_box_reg: 0.0184 (0.0184) time: 1.8892 data: 0.3930 max mem: 7369 Epoch: [6] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3488 (0.4089) loss_classifier: 0.1275 (0.1354) loss_box_reg: 0.1752 (0.2237) loss_objectness: 0.0201 (0.0244) loss_rpn_box_reg: 0.0184 (0.0253) time: 1.4340 data: 0.0680 max mem: 7369 Epoch: [6] Total time: 0:00:14 (1.4418 s / it) Epoch: [7] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.3759 (0.3759) loss_classifier: 0.1357 (0.1357) loss_box_reg: 0.2029 (0.2029) loss_objectness: 0.0183 (0.0183) loss_rpn_box_reg: 0.0191 (0.0191) time: 1.9736 data: 0.4459 max mem: 7369 Epoch: [7] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3003 (0.3587) loss_classifier: 0.0950 (0.1124) loss_box_reg: 0.1808 (0.2038) loss_objectness: 0.0154 (0.0183) loss_rpn_box_reg: 0.0208 (0.0242) time: 1.4407 data: 0.0734 max mem: 7369 Epoch: [7] Total time: 0:00:14 (1.4483 s / it) Epoch: [8] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.2545 (0.2545) loss_classifier: 0.0811 (0.0811) loss_box_reg: 0.1363 (0.1363) loss_objectness: 0.0161 (0.0161) loss_rpn_box_reg: 0.0209 (0.0209) time: 1.9026 data: 0.4101 max mem: 7369 Epoch: [8] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.2931 (0.3084) loss_classifier: 0.0939 (0.0991) loss_box_reg: 0.1707 (0.1775) loss_objectness: 0.0154 (0.0147) loss_rpn_box_reg: 0.0155 (0.0172) time: 1.4348 data: 0.0680 max mem: 7369 Epoch: [8] Total time: 0:00:14 (1.4428 s / it) Epoch: [9] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.1466 (0.1466) loss_classifier: 0.0478 (0.0478) loss_box_reg: 0.0778 (0.0778) loss_objectness: 0.0150 (0.0150) loss_rpn_box_reg: 0.0060 (0.0060) time: 1.9029 data: 0.4035 max mem: 7369 Epoch: [9] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.2940 (0.2840) loss_classifier: 0.0962 (0.0956) loss_box_reg: 0.1490 (0.1589) loss_objectness: 0.0138 (0.0133) loss_rpn_box_reg: 0.0142 (0.0162) time: 1.4391 data: 0.0695 max mem: 7369 Epoch: [9] Total time: 0:00:14 (1.4467 s / it) Epoch: [10] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2010 (0.2010) loss_classifier: 0.0559 (0.0559) loss_box_reg: 0.1327 (0.1327) loss_objectness: 0.0079 (0.0079) loss_rpn_box_reg: 0.0045 (0.0045) time: 1.9192 data: 0.4061 max mem: 7369 Epoch: [10] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2894 (0.2826) loss_classifier: 0.0896 (0.0980) loss_box_reg: 0.1583 (0.1599) loss_objectness: 0.0103 (0.0106) loss_rpn_box_reg: 0.0158 (0.0142) time: 1.4314 data: 0.0674 max mem: 7369 Epoch: [10] Total time: 0:00:14 (1.4394 s / it) Epoch: [11] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2435 (0.2435) loss_classifier: 0.0964 (0.0964) loss_box_reg: 0.1279 (0.1279) loss_objectness: 0.0099 (0.0099) loss_rpn_box_reg: 0.0094 (0.0094) time: 1.9712 data: 0.4520 max mem: 7369 Epoch: [11] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2424 (0.2810) loss_classifier: 0.0847 (0.0962) loss_box_reg: 0.1280 (0.1579) loss_objectness: 0.0120 (0.0119) loss_rpn_box_reg: 0.0130 (0.0150) time: 1.4469 data: 0.0751 max mem: 7369 Epoch: [11] Total time: 0:00:14 (1.4557 s / it) Epoch: [12] [ 0/10] eta: 0:00:20 lr: 0.000500 loss: 0.1982 (0.1982) loss_classifier: 0.0753 (0.0753) loss_box_reg: 0.1065 (0.1065) loss_objectness: 0.0059 (0.0059) loss_rpn_box_reg: 0.0105 (0.0105) time: 2.0766 data: 0.5241 max mem: 7369 Epoch: [12] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2863 (0.2870) loss_classifier: 0.0864 (0.0912) loss_box_reg: 0.1732 (0.1651) loss_objectness: 0.0113 (0.0112) loss_rpn_box_reg: 0.0132 (0.0195) time: 1.4499 data: 0.0811 max mem: 7369 Epoch: [12] Total time: 0:00:14 (1.4636 s / it) Epoch: [13] [ 0/10] eta: 0:00:21 lr: 0.000500 loss: 0.4031 (0.4031) loss_classifier: 0.1235 (0.1235) loss_box_reg: 0.2434 (0.2434) loss_objectness: 0.0123 (0.0123) loss_rpn_box_reg: 0.0238 (0.0238) time: 2.1848 data: 0.6263 max mem: 7369 Epoch: [13] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2348 (0.2419) loss_classifier: 0.0859 (0.0778) loss_box_reg: 0.1273 (0.1383) loss_objectness: 0.0109 (0.0119) loss_rpn_box_reg: 0.0104 (0.0140) time: 1.4603 data: 0.0897 max mem: 7369 Epoch: [13] Total time: 0:00:14 (1.4679 s / it) Epoch: [14] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2135 (0.2135) loss_classifier: 0.0619 (0.0619) loss_box_reg: 0.1322 (0.1322) loss_objectness: 0.0089 (0.0089) loss_rpn_box_reg: 0.0105 (0.0105) time: 1.9201 data: 0.4136 max mem: 7369 Epoch: [14] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2660 (0.2811) loss_classifier: 0.0889 (0.0891) loss_box_reg: 0.1442 (0.1629) loss_objectness: 0.0128 (0.0135) loss_rpn_box_reg: 0.0123 (0.0156) time: 1.4384 data: 0.0690 max mem: 7369 Epoch: [14] Total time: 0:00:14 (1.4462 s / it) Epoch: [15] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2401 (0.2401) loss_classifier: 0.0659 (0.0659) loss_box_reg: 0.1468 (0.1468) loss_objectness: 0.0108 (0.0108) loss_rpn_box_reg: 0.0166 (0.0166) time: 1.9557 data: 0.4197 max mem: 7369 Epoch: [15] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2557 (0.2931) loss_classifier: 0.0913 (0.0905) loss_box_reg: 0.1468 (0.1696) loss_objectness: 0.0108 (0.0143) loss_rpn_box_reg: 0.0140 (0.0187) time: 1.4407 data: 0.0711 max mem: 7369 Epoch: [15] Total time: 0:00:14 (1.4484 s / it) Epoch: [16] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2188 (0.2188) loss_classifier: 0.0901 (0.0901) loss_box_reg: 0.1090 (0.1090) loss_objectness: 0.0115 (0.0115) loss_rpn_box_reg: 0.0083 (0.0083) time: 1.9820 data: 0.4422 max mem: 7369 Epoch: [16] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2318 (0.2371) loss_classifier: 0.0765 (0.0759) loss_box_reg: 0.1390 (0.1375) loss_objectness: 0.0100 (0.0111) loss_rpn_box_reg: 0.0138 (0.0126) time: 1.4409 data: 0.0726 max mem: 7369 Epoch: [16] Total time: 0:00:14 (1.4481 s / it) Epoch: [17] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2032 (0.2032) loss_classifier: 0.0630 (0.0630) loss_box_reg: 0.1200 (0.1200) loss_objectness: 0.0102 (0.0102) loss_rpn_box_reg: 0.0099 (0.0099) time: 1.9676 data: 0.4580 max mem: 7369 Epoch: [17] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2292 (0.2377) loss_classifier: 0.0796 (0.0762) loss_box_reg: 0.1415 (0.1390) loss_objectness: 0.0104 (0.0100) loss_rpn_box_reg: 0.0120 (0.0126) time: 1.4376 data: 0.0730 max mem: 7369 Epoch: [17] Total time: 0:00:14 (1.4449 s / it) Epoch: [18] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2862 (0.2862) loss_classifier: 0.0988 (0.0988) loss_box_reg: 0.1587 (0.1587) loss_objectness: 0.0172 (0.0172) loss_rpn_box_reg: 0.0115 (0.0115) time: 1.9709 data: 0.4515 max mem: 7369 Epoch: [18] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2544 (0.2619) loss_classifier: 0.0841 (0.0852) loss_box_reg: 0.1434 (0.1475) loss_objectness: 0.0115 (0.0163) loss_rpn_box_reg: 0.0124 (0.0129) time: 1.4375 data: 0.0736 max mem: 7369 Epoch: [18] Total time: 0:00:14 (1.4447 s / it) Epoch: [19] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2796 (0.2796) loss_classifier: 0.0994 (0.0994) loss_box_reg: 0.1490 (0.1490) loss_objectness: 0.0109 (0.0109) loss_rpn_box_reg: 0.0203 (0.0203) time: 1.9641 data: 0.4192 max mem: 7369 Epoch: [19] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2796 (0.2852) loss_classifier: 0.0911 (0.0883) loss_box_reg: 0.1490 (0.1707) loss_objectness: 0.0100 (0.0111) loss_rpn_box_reg: 0.0122 (0.0152) time: 1.4396 data: 0.0719 max mem: 7369 Epoch: [19] Total time: 0:00:14 (1.4479 s / it) FOLD 2 -------------------------------- Epoch: [0] [ 0/10] eta: 0:00:22 lr: 0.000560 loss: 2.0212 (2.0212) loss_classifier: 0.5688 (0.5688) loss_box_reg: 0.1912 (0.1912) loss_objectness: 1.2033 (1.2033) loss_rpn_box_reg: 0.0578 (0.0578) time: 2.2001 data: 0.6171 max mem: 7369 Epoch: [0] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 1.1913 (1.2146) loss_classifier: 0.3988 (0.4324) loss_box_reg: 0.2809 (0.3337) loss_objectness: 0.2339 (0.3987) loss_rpn_box_reg: 0.0428 (0.0498) time: 1.4779 data: 0.0897 max mem: 7369 Epoch: [0] Total time: 0:00:14 (1.4882 s / it) Epoch: [1] [ 0/10] eta: 0:00:22 lr: 0.005000 loss: 0.5744 (0.5744) loss_classifier: 0.1922 (0.1922) loss_box_reg: 0.1984 (0.1984) loss_objectness: 0.1385 (0.1385) loss_rpn_box_reg: 0.0453 (0.0453) time: 2.2425 data: 0.6807 max mem: 7369 Epoch: [1] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.6169 (0.6817) loss_classifier: 0.2011 (0.2009) loss_box_reg: 0.3157 (0.3357) loss_objectness: 0.0828 (0.0922) loss_rpn_box_reg: 0.0453 (0.0528) time: 1.4945 data: 0.0942 max mem: 7369 Epoch: [1] Total time: 0:00:15 (1.5019 s / it) Epoch: [2] [ 0/10] eta: 0:00:20 lr: 0.005000 loss: 0.6641 (0.6641) loss_classifier: 0.2146 (0.2146) loss_box_reg: 0.3572 (0.3572) loss_objectness: 0.0675 (0.0675) loss_rpn_box_reg: 0.0249 (0.0249) time: 2.0236 data: 0.4598 max mem: 7369 Epoch: [2] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4833 (0.5057) loss_classifier: 0.1681 (0.1597) loss_box_reg: 0.2453 (0.2573) loss_objectness: 0.0555 (0.0559) loss_rpn_box_reg: 0.0249 (0.0329) time: 1.4622 data: 0.0747 max mem: 7369 Epoch: [2] Total time: 0:00:14 (1.4703 s / it) Epoch: [3] [ 0/10] eta: 0:00:18 lr: 0.005000 loss: 0.5038 (0.5038) loss_classifier: 0.1500 (0.1500) loss_box_reg: 0.2672 (0.2672) loss_objectness: 0.0468 (0.0468) loss_rpn_box_reg: 0.0398 (0.0398) time: 1.8965 data: 0.3742 max mem: 7369 Epoch: [3] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4597 (0.4308) loss_classifier: 0.1420 (0.1360) loss_box_reg: 0.2622 (0.2264) loss_objectness: 0.0287 (0.0379) loss_rpn_box_reg: 0.0216 (0.0305) time: 1.4590 data: 0.0669 max mem: 7369 Epoch: [3] Total time: 0:00:14 (1.4666 s / it) Epoch: [4] [ 0/10] eta: 0:00:20 lr: 0.005000 loss: 0.5125 (0.5125) loss_classifier: 0.1300 (0.1300) loss_box_reg: 0.2516 (0.2516) loss_objectness: 0.0690 (0.0690) loss_rpn_box_reg: 0.0619 (0.0619) time: 2.0046 data: 0.4698 max mem: 7369 Epoch: [4] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3790 (0.4243) loss_classifier: 0.1221 (0.1315) loss_box_reg: 0.2122 (0.2315) loss_objectness: 0.0304 (0.0325) loss_rpn_box_reg: 0.0264 (0.0288) time: 1.4648 data: 0.0738 max mem: 7369 Epoch: [4] Total time: 0:00:14 (1.4727 s / it) Epoch: [5] [ 0/10] eta: 0:00:20 lr: 0.005000 loss: 0.5564 (0.5564) loss_classifier: 0.1606 (0.1606) loss_box_reg: 0.2755 (0.2755) loss_objectness: 0.0654 (0.0654) loss_rpn_box_reg: 0.0549 (0.0549) time: 2.0296 data: 0.4914 max mem: 7369 Epoch: [5] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3258 (0.3913) loss_classifier: 0.1184 (0.1254) loss_box_reg: 0.1690 (0.2118) loss_objectness: 0.0184 (0.0282) loss_rpn_box_reg: 0.0186 (0.0260) time: 1.4635 data: 0.0762 max mem: 7369 Epoch: [5] Total time: 0:00:14 (1.4711 s / it) Epoch: [6] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.1738 (0.1738) loss_classifier: 0.0592 (0.0592) loss_box_reg: 0.0943 (0.0943) loss_objectness: 0.0084 (0.0084) loss_rpn_box_reg: 0.0118 (0.0118) time: 1.9884 data: 0.4681 max mem: 7369 Epoch: [6] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3145 (0.3404) loss_classifier: 0.1022 (0.1057) loss_box_reg: 0.1973 (0.1912) loss_objectness: 0.0124 (0.0206) loss_rpn_box_reg: 0.0202 (0.0228) time: 1.4549 data: 0.0723 max mem: 7369 Epoch: [6] Total time: 0:00:14 (1.4673 s / it) Epoch: [7] [ 0/10] eta: 0:00:23 lr: 0.005000 loss: 0.4046 (0.4046) loss_classifier: 0.1122 (0.1122) loss_box_reg: 0.2484 (0.2484) loss_objectness: 0.0212 (0.0212) loss_rpn_box_reg: 0.0229 (0.0229) time: 2.3061 data: 0.7494 max mem: 7369 Epoch: [7] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3273 (0.3511) loss_classifier: 0.1026 (0.1063) loss_box_reg: 0.1779 (0.1996) loss_objectness: 0.0188 (0.0201) loss_rpn_box_reg: 0.0162 (0.0252) time: 1.4869 data: 0.1006 max mem: 7369 Epoch: [7] Total time: 0:00:14 (1.4997 s / it) Epoch: [8] [ 0/10] eta: 0:00:21 lr: 0.005000 loss: 0.2312 (0.2312) loss_classifier: 0.0797 (0.0797) loss_box_reg: 0.1319 (0.1319) loss_objectness: 0.0092 (0.0092) loss_rpn_box_reg: 0.0104 (0.0104) time: 2.1554 data: 0.6545 max mem: 7369 Epoch: [8] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3029 (0.3055) loss_classifier: 0.0891 (0.0938) loss_box_reg: 0.1748 (0.1745) loss_objectness: 0.0156 (0.0173) loss_rpn_box_reg: 0.0189 (0.0199) time: 1.4722 data: 0.0916 max mem: 7369 Epoch: [8] Total time: 0:00:14 (1.4792 s / it) Epoch: [9] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.3588 (0.3588) loss_classifier: 0.0857 (0.0857) loss_box_reg: 0.2278 (0.2278) loss_objectness: 0.0172 (0.0172) loss_rpn_box_reg: 0.0281 (0.0281) time: 1.9365 data: 0.4166 max mem: 7369 Epoch: [9] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.2996 (0.2919) loss_classifier: 0.0914 (0.0904) loss_box_reg: 0.1693 (0.1654) loss_objectness: 0.0144 (0.0165) loss_rpn_box_reg: 0.0161 (0.0196) time: 1.4571 data: 0.0707 max mem: 7369 Epoch: [9] Total time: 0:00:14 (1.4650 s / it) Epoch: [10] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1766 (0.1766) loss_classifier: 0.0569 (0.0569) loss_box_reg: 0.1037 (0.1037) loss_objectness: 0.0083 (0.0083) loss_rpn_box_reg: 0.0077 (0.0077) time: 1.9100 data: 0.3913 max mem: 7369 Epoch: [10] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2962 (0.2902) loss_classifier: 0.0841 (0.0880) loss_box_reg: 0.1856 (0.1657) loss_objectness: 0.0155 (0.0178) loss_rpn_box_reg: 0.0124 (0.0188) time: 1.4539 data: 0.0679 max mem: 7369 Epoch: [10] Total time: 0:00:14 (1.4621 s / it) Epoch: [11] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.3207 (0.3207) loss_classifier: 0.0864 (0.0864) loss_box_reg: 0.1996 (0.1996) loss_objectness: 0.0145 (0.0145) loss_rpn_box_reg: 0.0202 (0.0202) time: 1.9954 data: 0.4707 max mem: 7369 Epoch: [11] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2363 (0.2549) loss_classifier: 0.0778 (0.0796) loss_box_reg: 0.1312 (0.1458) loss_objectness: 0.0113 (0.0126) loss_rpn_box_reg: 0.0161 (0.0169) time: 1.4573 data: 0.0719 max mem: 7369 Epoch: [11] Total time: 0:00:14 (1.4651 s / it) Epoch: [12] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1868 (0.1868) loss_classifier: 0.0526 (0.0526) loss_box_reg: 0.1151 (0.1151) loss_objectness: 0.0093 (0.0093) loss_rpn_box_reg: 0.0098 (0.0098) time: 1.9280 data: 0.4313 max mem: 7369 Epoch: [12] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2616 (0.2631) loss_classifier: 0.0836 (0.0786) loss_box_reg: 0.1539 (0.1516) loss_objectness: 0.0113 (0.0145) loss_rpn_box_reg: 0.0140 (0.0185) time: 1.4497 data: 0.0715 max mem: 7369 Epoch: [12] Total time: 0:00:14 (1.4567 s / it) Epoch: [13] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2231 (0.2231) loss_classifier: 0.0854 (0.0854) loss_box_reg: 0.1113 (0.1113) loss_objectness: 0.0209 (0.0209) loss_rpn_box_reg: 0.0056 (0.0056) time: 1.9250 data: 0.4130 max mem: 7369 Epoch: [13] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2207 (0.2409) loss_classifier: 0.0629 (0.0757) loss_box_reg: 0.1223 (0.1360) loss_objectness: 0.0104 (0.0130) loss_rpn_box_reg: 0.0139 (0.0162) time: 1.4455 data: 0.0667 max mem: 7369 Epoch: [13] Total time: 0:00:14 (1.4569 s / it) Epoch: [14] [ 0/10] eta: 0:00:21 lr: 0.000500 loss: 0.1744 (0.1744) loss_classifier: 0.0471 (0.0471) loss_box_reg: 0.1084 (0.1084) loss_objectness: 0.0045 (0.0045) loss_rpn_box_reg: 0.0144 (0.0144) time: 2.1734 data: 0.6129 max mem: 7369 Epoch: [14] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2523 (0.2420) loss_classifier: 0.0735 (0.0740) loss_box_reg: 0.1493 (0.1382) loss_objectness: 0.0117 (0.0135) loss_rpn_box_reg: 0.0147 (0.0164) time: 1.4805 data: 0.0912 max mem: 7369 Epoch: [14] Total time: 0:00:14 (1.4916 s / it) Epoch: [15] [ 0/10] eta: 0:00:22 lr: 0.000500 loss: 0.2803 (0.2803) loss_classifier: 0.0965 (0.0965) loss_box_reg: 0.1623 (0.1623) loss_objectness: 0.0083 (0.0083) loss_rpn_box_reg: 0.0131 (0.0131) time: 2.2255 data: 0.6650 max mem: 7369 Epoch: [15] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2376 (0.2296) loss_classifier: 0.0692 (0.0718) loss_box_reg: 0.1391 (0.1295) loss_objectness: 0.0106 (0.0119) loss_rpn_box_reg: 0.0118 (0.0164) time: 1.4822 data: 0.0951 max mem: 7369 Epoch: [15] Total time: 0:00:14 (1.4899 s / it) Epoch: [16] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.3165 (0.3165) loss_classifier: 0.0984 (0.0984) loss_box_reg: 0.1833 (0.1833) loss_objectness: 0.0204 (0.0204) loss_rpn_box_reg: 0.0144 (0.0144) time: 1.9439 data: 0.4210 max mem: 7369 Epoch: [16] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2462 (0.2452) loss_classifier: 0.0723 (0.0765) loss_box_reg: 0.1405 (0.1385) loss_objectness: 0.0130 (0.0136) loss_rpn_box_reg: 0.0136 (0.0166) time: 1.4530 data: 0.0714 max mem: 7369 Epoch: [16] Total time: 0:00:14 (1.4613 s / it) Epoch: [17] [ 0/10] eta: 0:00:20 lr: 0.000500 loss: 0.3604 (0.3604) loss_classifier: 0.1065 (0.1065) loss_box_reg: 0.2134 (0.2134) loss_objectness: 0.0224 (0.0224) loss_rpn_box_reg: 0.0181 (0.0181) time: 2.0079 data: 0.4816 max mem: 7369 Epoch: [17] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2159 (0.2438) loss_classifier: 0.0750 (0.0763) loss_box_reg: 0.1277 (0.1392) loss_objectness: 0.0080 (0.0116) loss_rpn_box_reg: 0.0127 (0.0167) time: 1.4640 data: 0.0763 max mem: 7369 Epoch: [17] Total time: 0:00:14 (1.4712 s / it) Epoch: [18] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1308 (0.1308) loss_classifier: 0.0385 (0.0385) loss_box_reg: 0.0729 (0.0729) loss_objectness: 0.0096 (0.0096) loss_rpn_box_reg: 0.0097 (0.0097) time: 1.9142 data: 0.4063 max mem: 7369 Epoch: [18] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2206 (0.2528) loss_classifier: 0.0635 (0.0780) loss_box_reg: 0.1352 (0.1466) loss_objectness: 0.0097 (0.0113) loss_rpn_box_reg: 0.0126 (0.0169) time: 1.4567 data: 0.0699 max mem: 7369 Epoch: [18] Total time: 0:00:14 (1.4656 s / it) Epoch: [19] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1251 (0.1251) loss_classifier: 0.0379 (0.0379) loss_box_reg: 0.0748 (0.0748) loss_objectness: 0.0066 (0.0066) loss_rpn_box_reg: 0.0058 (0.0058) time: 1.9700 data: 0.4043 max mem: 7369 Epoch: [19] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.1981 (0.2517) loss_classifier: 0.0741 (0.0739) loss_box_reg: 0.1096 (0.1484) loss_objectness: 0.0119 (0.0130) loss_rpn_box_reg: 0.0100 (0.0164) time: 1.4655 data: 0.0699 max mem: 7369 Epoch: [19] Total time: 0:00:14 (1.4734 s / it) FOLD 3 -------------------------------- Epoch: [0] [ 0/10] eta: 0:00:19 lr: 0.000560 loss: 1.7619 (1.7619) loss_classifier: 0.6075 (0.6075) loss_box_reg: 0.3803 (0.3803) loss_objectness: 0.7338 (0.7338) loss_rpn_box_reg: 0.0404 (0.0404) time: 1.9245 data: 0.4078 max mem: 7369 Epoch: [0] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 1.1779 (1.2150) loss_classifier: 0.4669 (0.4465) loss_box_reg: 0.3803 (0.3815) loss_objectness: 0.2125 (0.3380) loss_rpn_box_reg: 0.0457 (0.0490) time: 1.4554 data: 0.0722 max mem: 7369 Epoch: [0] Total time: 0:00:14 (1.4692 s / it) Epoch: [1] [ 0/10] eta: 0:00:22 lr: 0.005000 loss: 0.8010 (0.8010) loss_classifier: 0.3474 (0.3474) loss_box_reg: 0.3663 (0.3663) loss_objectness: 0.0589 (0.0589) loss_rpn_box_reg: 0.0284 (0.0284) time: 2.2664 data: 0.7067 max mem: 7369 Epoch: [1] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.7403 (0.7507) loss_classifier: 0.2406 (0.2551) loss_box_reg: 0.3447 (0.3680) loss_objectness: 0.0687 (0.0842) loss_rpn_box_reg: 0.0433 (0.0434) time: 1.4934 data: 0.0989 max mem: 7369 Epoch: [1] Total time: 0:00:15 (1.5004 s / it) Epoch: [2] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.5693 (0.5693) loss_classifier: 0.1802 (0.1802) loss_box_reg: 0.3092 (0.3092) loss_objectness: 0.0560 (0.0560) loss_rpn_box_reg: 0.0238 (0.0238) time: 1.9262 data: 0.3974 max mem: 7369 Epoch: [2] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4989 (0.5093) loss_classifier: 0.1513 (0.1632) loss_box_reg: 0.2550 (0.2629) loss_objectness: 0.0522 (0.0519) loss_rpn_box_reg: 0.0277 (0.0314) time: 1.4548 data: 0.0682 max mem: 7369 Epoch: [2] Total time: 0:00:14 (1.4618 s / it) Epoch: [3] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.5415 (0.5415) loss_classifier: 0.1485 (0.1485) loss_box_reg: 0.2530 (0.2530) loss_objectness: 0.0661 (0.0661) loss_rpn_box_reg: 0.0738 (0.0738) time: 1.9576 data: 0.4693 max mem: 7369 Epoch: [3] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.4107 (0.4335) loss_classifier: 0.1306 (0.1396) loss_box_reg: 0.2177 (0.2268) loss_objectness: 0.0405 (0.0385) loss_rpn_box_reg: 0.0213 (0.0286) time: 1.4563 data: 0.0738 max mem: 7369 Epoch: [3] Total time: 0:00:14 (1.4636 s / it) Epoch: [4] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.3033 (0.3033) loss_classifier: 0.1034 (0.1034) loss_box_reg: 0.1687 (0.1687) loss_objectness: 0.0190 (0.0190) loss_rpn_box_reg: 0.0122 (0.0122) time: 1.9300 data: 0.4218 max mem: 7369 Epoch: [4] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3822 (0.4024) loss_classifier: 0.1302 (0.1372) loss_box_reg: 0.2072 (0.2117) loss_objectness: 0.0245 (0.0302) loss_rpn_box_reg: 0.0183 (0.0233) time: 1.4569 data: 0.0721 max mem: 7369 Epoch: [4] Total time: 0:00:14 (1.4639 s / it) Epoch: [5] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.3716 (0.3716) loss_classifier: 0.1177 (0.1177) loss_box_reg: 0.2199 (0.2199) loss_objectness: 0.0195 (0.0195) loss_rpn_box_reg: 0.0145 (0.0145) time: 1.9010 data: 0.4041 max mem: 7369 Epoch: [5] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3612 (0.3497) loss_classifier: 0.1177 (0.1128) loss_box_reg: 0.2068 (0.1922) loss_objectness: 0.0218 (0.0242) loss_rpn_box_reg: 0.0192 (0.0206) time: 1.4617 data: 0.0712 max mem: 7369 Epoch: [5] Total time: 0:00:14 (1.4693 s / it) Epoch: [6] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.5653 (0.5653) loss_classifier: 0.1675 (0.1675) loss_box_reg: 0.2924 (0.2924) loss_objectness: 0.0523 (0.0523) loss_rpn_box_reg: 0.0531 (0.0531) time: 1.9726 data: 0.4679 max mem: 7369 Epoch: [6] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3022 (0.3577) loss_classifier: 0.1194 (0.1179) loss_box_reg: 0.1698 (0.1986) loss_objectness: 0.0190 (0.0214) loss_rpn_box_reg: 0.0185 (0.0197) time: 1.4587 data: 0.0745 max mem: 7369 Epoch: [6] Total time: 0:00:14 (1.4658 s / it) Epoch: [7] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.4132 (0.4132) loss_classifier: 0.1385 (0.1385) loss_box_reg: 0.2413 (0.2413) loss_objectness: 0.0188 (0.0188) loss_rpn_box_reg: 0.0146 (0.0146) time: 1.9996 data: 0.4654 max mem: 7369 Epoch: [7] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3235 (0.3347) loss_classifier: 0.1006 (0.1117) loss_box_reg: 0.1596 (0.1852) loss_objectness: 0.0151 (0.0187) loss_rpn_box_reg: 0.0146 (0.0190) time: 1.4605 data: 0.0739 max mem: 7369 Epoch: [7] Total time: 0:00:14 (1.4737 s / it) Epoch: [8] [ 0/10] eta: 0:00:22 lr: 0.005000 loss: 0.2666 (0.2666) loss_classifier: 0.1002 (0.1002) loss_box_reg: 0.1353 (0.1353) loss_objectness: 0.0191 (0.0191) loss_rpn_box_reg: 0.0120 (0.0120) time: 2.2319 data: 0.6681 max mem: 7369 Epoch: [8] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.3010 (0.3103) loss_classifier: 0.1015 (0.1027) loss_box_reg: 0.1672 (0.1724) loss_objectness: 0.0153 (0.0174) loss_rpn_box_reg: 0.0120 (0.0178) time: 1.4848 data: 0.0941 max mem: 7369 Epoch: [8] Total time: 0:00:14 (1.4921 s / it) Epoch: [9] [ 0/10] eta: 0:00:19 lr: 0.005000 loss: 0.2201 (0.2201) loss_classifier: 0.0786 (0.0786) loss_box_reg: 0.1212 (0.1212) loss_objectness: 0.0125 (0.0125) loss_rpn_box_reg: 0.0078 (0.0078) time: 1.9154 data: 0.4208 max mem: 7369 Epoch: [9] [ 9/10] eta: 0:00:01 lr: 0.005000 loss: 0.2684 (0.3121) loss_classifier: 0.0901 (0.1030) loss_box_reg: 0.1622 (0.1774) loss_objectness: 0.0125 (0.0152) loss_rpn_box_reg: 0.0114 (0.0166) time: 1.4519 data: 0.0702 max mem: 7369 Epoch: [9] Total time: 0:00:14 (1.4604 s / it) Epoch: [10] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2696 (0.2696) loss_classifier: 0.0856 (0.0856) loss_box_reg: 0.1620 (0.1620) loss_objectness: 0.0131 (0.0131) loss_rpn_box_reg: 0.0088 (0.0088) time: 1.9451 data: 0.4379 max mem: 7369 Epoch: [10] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2696 (0.2810) loss_classifier: 0.0755 (0.0861) loss_box_reg: 0.1791 (0.1688) loss_objectness: 0.0124 (0.0116) loss_rpn_box_reg: 0.0134 (0.0145) time: 1.4572 data: 0.0720 max mem: 7369 Epoch: [10] Total time: 0:00:14 (1.4644 s / it) Epoch: [11] [ 0/10] eta: 0:00:20 lr: 0.000500 loss: 0.3691 (0.3691) loss_classifier: 0.1087 (0.1087) loss_box_reg: 0.1902 (0.1902) loss_objectness: 0.0258 (0.0258) loss_rpn_box_reg: 0.0443 (0.0443) time: 2.0256 data: 0.4861 max mem: 7369 Epoch: [11] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2592 (0.2703) loss_classifier: 0.0871 (0.0855) loss_box_reg: 0.1558 (0.1561) loss_objectness: 0.0142 (0.0141) loss_rpn_box_reg: 0.0101 (0.0146) time: 1.4608 data: 0.0733 max mem: 7369 Epoch: [11] Total time: 0:00:14 (1.4679 s / it) Epoch: [12] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2408 (0.2408) loss_classifier: 0.0792 (0.0792) loss_box_reg: 0.1305 (0.1305) loss_objectness: 0.0134 (0.0134) loss_rpn_box_reg: 0.0177 (0.0177) time: 1.9100 data: 0.4121 max mem: 7369 Epoch: [12] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2410 (0.2781) loss_classifier: 0.0792 (0.0906) loss_box_reg: 0.1407 (0.1598) loss_objectness: 0.0126 (0.0129) loss_rpn_box_reg: 0.0107 (0.0147) time: 1.4582 data: 0.0731 max mem: 7369 Epoch: [12] Total time: 0:00:14 (1.4663 s / it) Epoch: [13] [ 0/10] eta: 0:00:18 lr: 0.000500 loss: 0.2389 (0.2389) loss_classifier: 0.0596 (0.0596) loss_box_reg: 0.1457 (0.1457) loss_objectness: 0.0136 (0.0136) loss_rpn_box_reg: 0.0199 (0.0199) time: 1.8952 data: 0.3938 max mem: 7369 Epoch: [13] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2389 (0.2632) loss_classifier: 0.0749 (0.0848) loss_box_reg: 0.1457 (0.1521) loss_objectness: 0.0105 (0.0123) loss_rpn_box_reg: 0.0099 (0.0140) time: 1.4489 data: 0.0677 max mem: 7369 Epoch: [13] Total time: 0:00:14 (1.4585 s / it) Epoch: [14] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.1890 (0.1890) loss_classifier: 0.0594 (0.0594) loss_box_reg: 0.1127 (0.1127) loss_objectness: 0.0062 (0.0062) loss_rpn_box_reg: 0.0107 (0.0107) time: 1.9969 data: 0.4860 max mem: 7369 Epoch: [14] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2659 (0.2753) loss_classifier: 0.0872 (0.0879) loss_box_reg: 0.1555 (0.1506) loss_objectness: 0.0114 (0.0138) loss_rpn_box_reg: 0.0112 (0.0230) time: 1.4609 data: 0.0786 max mem: 7369 Epoch: [14] Total time: 0:00:14 (1.4741 s / it) Epoch: [15] [ 0/10] eta: 0:00:21 lr: 0.000500 loss: 0.2110 (0.2110) loss_classifier: 0.0925 (0.0925) loss_box_reg: 0.1094 (0.1094) loss_objectness: 0.0052 (0.0052) loss_rpn_box_reg: 0.0039 (0.0039) time: 2.1985 data: 0.6196 max mem: 7369 Epoch: [15] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2110 (0.2717) loss_classifier: 0.0750 (0.0879) loss_box_reg: 0.1163 (0.1556) loss_objectness: 0.0157 (0.0136) loss_rpn_box_reg: 0.0110 (0.0146) time: 1.4786 data: 0.0917 max mem: 7369 Epoch: [15] Total time: 0:00:14 (1.4858 s / it) Epoch: [16] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2004 (0.2004) loss_classifier: 0.0648 (0.0648) loss_box_reg: 0.1179 (0.1179) loss_objectness: 0.0093 (0.0093) loss_rpn_box_reg: 0.0084 (0.0084) time: 1.9765 data: 0.4662 max mem: 7369 Epoch: [16] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2295 (0.2598) loss_classifier: 0.0665 (0.0837) loss_box_reg: 0.1404 (0.1480) loss_objectness: 0.0142 (0.0133) loss_rpn_box_reg: 0.0105 (0.0148) time: 1.4544 data: 0.0736 max mem: 7369 Epoch: [16] Total time: 0:00:14 (1.4614 s / it) Epoch: [17] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2045 (0.2045) loss_classifier: 0.0923 (0.0923) loss_box_reg: 0.0915 (0.0915) loss_objectness: 0.0145 (0.0145) loss_rpn_box_reg: 0.0062 (0.0062) time: 1.9334 data: 0.4134 max mem: 7369 Epoch: [17] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2392 (0.2470) loss_classifier: 0.0873 (0.0806) loss_box_reg: 0.1274 (0.1427) loss_objectness: 0.0109 (0.0100) loss_rpn_box_reg: 0.0094 (0.0137) time: 1.4543 data: 0.0697 max mem: 7369 Epoch: [17] Total time: 0:00:14 (1.4611 s / it) Epoch: [18] [ 0/10] eta: 0:00:19 lr: 0.000500 loss: 0.2953 (0.2953) loss_classifier: 0.0852 (0.0852) loss_box_reg: 0.1806 (0.1806) loss_objectness: 0.0123 (0.0123) loss_rpn_box_reg: 0.0172 (0.0172) time: 1.9323 data: 0.4118 max mem: 7369 Epoch: [18] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2839 (0.2647) loss_classifier: 0.0852 (0.0862) loss_box_reg: 0.1397 (0.1510) loss_objectness: 0.0119 (0.0120) loss_rpn_box_reg: 0.0111 (0.0154) time: 1.4568 data: 0.0714 max mem: 7369 Epoch: [18] Total time: 0:00:14 (1.4641 s / it) Epoch: [19] [ 0/10] eta: 0:00:18 lr: 0.000500 loss: 0.1764 (0.1764) loss_classifier: 0.0777 (0.0777) loss_box_reg: 0.0859 (0.0859) loss_objectness: 0.0101 (0.0101) loss_rpn_box_reg: 0.0028 (0.0028) time: 1.8826 data: 0.3678 max mem: 7369 Epoch: [19] [ 9/10] eta: 0:00:01 lr: 0.000500 loss: 0.2324 (0.2820) loss_classifier: 0.0777 (0.0905) loss_box_reg: 0.1346 (0.1627) loss_objectness: 0.0119 (0.0137) loss_rpn_box_reg: 0.0105 (0.0152) time: 1.4521 data: 0.0665 max mem: 7369 Epoch: [19] Total time: 0:00:14 (1.4594 s / it)
Lo unico modificado frente al codigo proporcionado por kaggle, es que usamos 20 capas, 4 epocas y dos clases, en vez de realizar 50 ya que sino tardaría mucho.
Además, la parte de evaluate la hemos eliminado porque no nos interesa.
Esta parte del codigo nos daba error porque al eliminar evaluate de la parte importar librerias eliminamos sin querer la de train one epoch,como nos dimos cuenta la importamos cargando de nuevo el codigo al inicio del todo junto con las demas librerias.
num_epochs = 20
# our dataset has two classes only - background and crater
num_classes = 2
# use our dataset and defined transformations
dataset = CraterDataset('/content/craters/train', get_transform(train=True))
dataset_test = CraterDataset('/content/craters/test', get_transform(train=False))
# define training and validation data loaders
data_loader = torch.utils.data.DataLoader(
dataset, batch_size=8, shuffle=True, num_workers=2,
collate_fn=utils.collate_fn)
data_loader_test = torch.utils.data.DataLoader(
dataset_test, batch_size=1, shuffle=False, num_workers=2,
collate_fn=utils.collate_fn)
# get the model using our helper function
model = get_model_bbox(num_classes)
'''
Use this to reset all trainable weights
model.apply(reset_weights)
'''
# move model to the right device
model.to(device)
# construct an optimizer
params = [p for p in model.parameters() if p.requires_grad]
optimizer = torch.optim.SGD(params, lr=0.005, # Feel free to play with values
momentum=0.9, weight_decay=0)
# Defining learning rate scheduler
lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer,
step_size=20,
gamma=0.2)
result_mAP = []
best_epoch = None
# Let's train!
for epoch in range(num_epochs):
# train for one epoch, printing every 10 iterations
train_one_epoch(model, optimizer, data_loader, device, epoch, print_freq=50)
# update the learning rate
lr_scheduler.step()
Epoch: [0] [ 0/13] eta: 0:00:26 lr: 0.000421 loss: 2.5979 (2.5979) loss_classifier: 0.5396 (0.5396) loss_box_reg: 0.3977 (0.3977) loss_objectness: 1.6073 (1.6073) loss_rpn_box_reg: 0.0534 (0.0534) time: 2.0385 data: 0.4868 max mem: 7369 Epoch: [0] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.9283 (1.1785) loss_classifier: 0.3549 (0.3691) loss_box_reg: 0.3117 (0.3483) loss_objectness: 0.2441 (0.4174) loss_rpn_box_reg: 0.0399 (0.0436) time: 1.4750 data: 0.0685 max mem: 7369 Epoch: [0] Total time: 0:00:19 (1.4854 s / it) Epoch: [1] [ 0/13] eta: 0:00:30 lr: 0.005000 loss: 0.9539 (0.9539) loss_classifier: 0.2209 (0.2209) loss_box_reg: 0.4332 (0.4332) loss_objectness: 0.1759 (0.1759) loss_rpn_box_reg: 0.1239 (0.1239) time: 2.3520 data: 0.7539 max mem: 7369 Epoch: [1] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.7048 (0.7028) loss_classifier: 0.2284 (0.2212) loss_box_reg: 0.3208 (0.3296) loss_objectness: 0.0745 (0.1031) loss_rpn_box_reg: 0.0296 (0.0488) time: 1.5421 data: 0.0863 max mem: 7369 Epoch: [1] Total time: 0:00:20 (1.5477 s / it) Epoch: [2] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.4429 (0.4429) loss_classifier: 0.1178 (0.1178) loss_box_reg: 0.2176 (0.2176) loss_objectness: 0.0959 (0.0959) loss_rpn_box_reg: 0.0116 (0.0116) time: 1.9419 data: 0.4030 max mem: 7369 Epoch: [2] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.4693 (0.4944) loss_classifier: 0.1461 (0.1604) loss_box_reg: 0.2246 (0.2358) loss_objectness: 0.0472 (0.0641) loss_rpn_box_reg: 0.0291 (0.0341) time: 1.4879 data: 0.0632 max mem: 7369 Epoch: [2] Total time: 0:00:19 (1.4966 s / it) Epoch: [3] [ 0/13] eta: 0:00:28 lr: 0.005000 loss: 0.5357 (0.5357) loss_classifier: 0.1669 (0.1669) loss_box_reg: 0.2750 (0.2750) loss_objectness: 0.0445 (0.0445) loss_rpn_box_reg: 0.0494 (0.0494) time: 2.1988 data: 0.6736 max mem: 7369 Epoch: [3] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.4065 (0.3889) loss_classifier: 0.1414 (0.1292) loss_box_reg: 0.1959 (0.1890) loss_objectness: 0.0414 (0.0417) loss_rpn_box_reg: 0.0245 (0.0289) time: 1.4845 data: 0.0836 max mem: 7369 Epoch: [3] Total time: 0:00:19 (1.4904 s / it) Epoch: [4] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.4367 (0.4367) loss_classifier: 0.1322 (0.1322) loss_box_reg: 0.2330 (0.2330) loss_objectness: 0.0362 (0.0362) loss_rpn_box_reg: 0.0353 (0.0353) time: 1.9638 data: 0.4474 max mem: 7369 Epoch: [4] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.4367 (0.3988) loss_classifier: 0.1322 (0.1335) loss_box_reg: 0.1907 (0.2022) loss_objectness: 0.0315 (0.0353) loss_rpn_box_reg: 0.0221 (0.0279) time: 1.4706 data: 0.0632 max mem: 7369 Epoch: [4] Total time: 0:00:19 (1.4794 s / it) Epoch: [5] [ 0/13] eta: 0:00:27 lr: 0.005000 loss: 0.3435 (0.3435) loss_classifier: 0.1177 (0.1177) loss_box_reg: 0.1647 (0.1647) loss_objectness: 0.0352 (0.0352) loss_rpn_box_reg: 0.0258 (0.0258) time: 2.0805 data: 0.5584 max mem: 7369 Epoch: [5] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.3813 (0.3783) loss_classifier: 0.1350 (0.1238) loss_box_reg: 0.1858 (0.1950) loss_objectness: 0.0292 (0.0329) loss_rpn_box_reg: 0.0258 (0.0266) time: 1.4868 data: 0.0729 max mem: 7369 Epoch: [5] Total time: 0:00:19 (1.4922 s / it) Epoch: [6] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.5397 (0.5397) loss_classifier: 0.1678 (0.1678) loss_box_reg: 0.2547 (0.2547) loss_objectness: 0.0675 (0.0675) loss_rpn_box_reg: 0.0497 (0.0497) time: 1.9935 data: 0.4532 max mem: 7369 Epoch: [6] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.3677 (0.3523) loss_classifier: 0.1189 (0.1139) loss_box_reg: 0.2047 (0.1912) loss_objectness: 0.0202 (0.0250) loss_rpn_box_reg: 0.0227 (0.0222) time: 1.4771 data: 0.0630 max mem: 7369 Epoch: [6] Total time: 0:00:19 (1.4876 s / it) Epoch: [7] [ 0/13] eta: 0:00:28 lr: 0.005000 loss: 0.3347 (0.3347) loss_classifier: 0.1106 (0.1106) loss_box_reg: 0.1987 (0.1987) loss_objectness: 0.0121 (0.0121) loss_rpn_box_reg: 0.0134 (0.0134) time: 2.2127 data: 0.7033 max mem: 7369 Epoch: [7] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.3347 (0.3413) loss_classifier: 0.1083 (0.1116) loss_box_reg: 0.1874 (0.1848) loss_objectness: 0.0185 (0.0220) loss_rpn_box_reg: 0.0155 (0.0230) time: 1.4928 data: 0.0860 max mem: 7369 Epoch: [7] Total time: 0:00:19 (1.4984 s / it) Epoch: [8] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.4744 (0.4744) loss_classifier: 0.1503 (0.1503) loss_box_reg: 0.2326 (0.2326) loss_objectness: 0.0447 (0.0447) loss_rpn_box_reg: 0.0469 (0.0469) time: 1.9774 data: 0.4549 max mem: 7369 Epoch: [8] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.3113 (0.3110) loss_classifier: 0.1027 (0.0988) loss_box_reg: 0.1797 (0.1698) loss_objectness: 0.0184 (0.0214) loss_rpn_box_reg: 0.0177 (0.0211) time: 1.4684 data: 0.0648 max mem: 7369 Epoch: [8] Total time: 0:00:19 (1.4774 s / it) Epoch: [9] [ 0/13] eta: 0:00:27 lr: 0.005000 loss: 0.3412 (0.3412) loss_classifier: 0.1104 (0.1104) loss_box_reg: 0.1975 (0.1975) loss_objectness: 0.0163 (0.0163) loss_rpn_box_reg: 0.0170 (0.0170) time: 2.1351 data: 0.5726 max mem: 7369 Epoch: [9] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2910 (0.2794) loss_classifier: 0.0966 (0.0894) loss_box_reg: 0.1632 (0.1551) loss_objectness: 0.0182 (0.0166) loss_rpn_box_reg: 0.0170 (0.0183) time: 1.4842 data: 0.0741 max mem: 7369 Epoch: [9] Total time: 0:00:19 (1.4906 s / it) Epoch: [10] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.4136 (0.4136) loss_classifier: 0.1215 (0.1215) loss_box_reg: 0.2451 (0.2451) loss_objectness: 0.0233 (0.0233) loss_rpn_box_reg: 0.0236 (0.0236) time: 1.9568 data: 0.4247 max mem: 7369 Epoch: [10] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2681 (0.2750) loss_classifier: 0.0906 (0.0934) loss_box_reg: 0.1493 (0.1490) loss_objectness: 0.0134 (0.0157) loss_rpn_box_reg: 0.0145 (0.0169) time: 1.4796 data: 0.0638 max mem: 7369 Epoch: [10] Total time: 0:00:19 (1.4900 s / it) Epoch: [11] [ 0/13] eta: 0:00:29 lr: 0.005000 loss: 0.3319 (0.3319) loss_classifier: 0.0956 (0.0956) loss_box_reg: 0.2068 (0.2068) loss_objectness: 0.0114 (0.0114) loss_rpn_box_reg: 0.0181 (0.0181) time: 2.2555 data: 0.6524 max mem: 7369 Epoch: [11] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2705 (0.2566) loss_classifier: 0.0849 (0.0826) loss_box_reg: 0.1370 (0.1430) loss_objectness: 0.0147 (0.0144) loss_rpn_box_reg: 0.0163 (0.0166) time: 1.4986 data: 0.0805 max mem: 7369 Epoch: [11] Total time: 0:00:19 (1.5047 s / it) Epoch: [12] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.3168 (0.3168) loss_classifier: 0.0963 (0.0963) loss_box_reg: 0.1926 (0.1926) loss_objectness: 0.0113 (0.0113) loss_rpn_box_reg: 0.0166 (0.0166) time: 1.9937 data: 0.4564 max mem: 7369 Epoch: [12] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2266 (0.2392) loss_classifier: 0.0739 (0.0762) loss_box_reg: 0.1336 (0.1350) loss_objectness: 0.0113 (0.0129) loss_rpn_box_reg: 0.0127 (0.0151) time: 1.4790 data: 0.0656 max mem: 7369 Epoch: [12] Total time: 0:00:19 (1.4894 s / it) Epoch: [13] [ 0/13] eta: 0:00:28 lr: 0.005000 loss: 0.3093 (0.3093) loss_classifier: 0.1068 (0.1068) loss_box_reg: 0.1649 (0.1649) loss_objectness: 0.0147 (0.0147) loss_rpn_box_reg: 0.0228 (0.0228) time: 2.2139 data: 0.6727 max mem: 7369 Epoch: [13] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2253 (0.2282) loss_classifier: 0.0703 (0.0740) loss_box_reg: 0.1157 (0.1278) loss_objectness: 0.0098 (0.0115) loss_rpn_box_reg: 0.0144 (0.0148) time: 1.4911 data: 0.0830 max mem: 7369 Epoch: [13] Total time: 0:00:19 (1.4966 s / it) Epoch: [14] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.2113 (0.2113) loss_classifier: 0.0752 (0.0752) loss_box_reg: 0.1189 (0.1189) loss_objectness: 0.0058 (0.0058) loss_rpn_box_reg: 0.0114 (0.0114) time: 1.9380 data: 0.4296 max mem: 7369 Epoch: [14] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2113 (0.2208) loss_classifier: 0.0736 (0.0734) loss_box_reg: 0.1182 (0.1245) loss_objectness: 0.0074 (0.0096) loss_rpn_box_reg: 0.0114 (0.0133) time: 1.4762 data: 0.0647 max mem: 7369 Epoch: [14] Total time: 0:00:19 (1.4852 s / it) Epoch: [15] [ 0/13] eta: 0:00:29 lr: 0.005000 loss: 0.3012 (0.3012) loss_classifier: 0.0777 (0.0777) loss_box_reg: 0.1857 (0.1857) loss_objectness: 0.0167 (0.0167) loss_rpn_box_reg: 0.0211 (0.0211) time: 2.2596 data: 0.7188 max mem: 7369 Epoch: [15] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2236 (0.2190) loss_classifier: 0.0727 (0.0678) loss_box_reg: 0.1248 (0.1276) loss_objectness: 0.0107 (0.0102) loss_rpn_box_reg: 0.0099 (0.0134) time: 1.4930 data: 0.0849 max mem: 7369 Epoch: [15] Total time: 0:00:19 (1.4985 s / it) Epoch: [16] [ 0/13] eta: 0:00:25 lr: 0.005000 loss: 0.1979 (0.1979) loss_classifier: 0.0696 (0.0696) loss_box_reg: 0.1099 (0.1099) loss_objectness: 0.0084 (0.0084) loss_rpn_box_reg: 0.0099 (0.0099) time: 1.9440 data: 0.4269 max mem: 7369 Epoch: [16] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.2275 (0.2060) loss_classifier: 0.0705 (0.0678) loss_box_reg: 0.1279 (0.1178) loss_objectness: 0.0084 (0.0087) loss_rpn_box_reg: 0.0099 (0.0117) time: 1.4731 data: 0.0626 max mem: 7369 Epoch: [16] Total time: 0:00:19 (1.4822 s / it) Epoch: [17] [ 0/13] eta: 0:00:28 lr: 0.005000 loss: 0.1367 (0.1367) loss_classifier: 0.0448 (0.0448) loss_box_reg: 0.0738 (0.0738) loss_objectness: 0.0066 (0.0066) loss_rpn_box_reg: 0.0115 (0.0115) time: 2.1805 data: 0.6252 max mem: 7369 Epoch: [17] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.1765 (0.1916) loss_classifier: 0.0557 (0.0605) loss_box_reg: 0.1130 (0.1102) loss_objectness: 0.0077 (0.0093) loss_rpn_box_reg: 0.0096 (0.0115) time: 1.4898 data: 0.0771 max mem: 7369 Epoch: [17] Total time: 0:00:19 (1.4956 s / it) Epoch: [18] [ 0/13] eta: 0:00:26 lr: 0.005000 loss: 0.2897 (0.2897) loss_classifier: 0.0791 (0.0791) loss_box_reg: 0.1542 (0.1542) loss_objectness: 0.0191 (0.0191) loss_rpn_box_reg: 0.0374 (0.0374) time: 2.0007 data: 0.4800 max mem: 7369 Epoch: [18] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.1775 (0.1954) loss_classifier: 0.0535 (0.0592) loss_box_reg: 0.1138 (0.1151) loss_objectness: 0.0091 (0.0098) loss_rpn_box_reg: 0.0075 (0.0113) time: 1.4757 data: 0.0658 max mem: 7369 Epoch: [18] Total time: 0:00:19 (1.4839 s / it) Epoch: [19] [ 0/13] eta: 0:00:30 lr: 0.005000 loss: 0.2967 (0.2967) loss_classifier: 0.0798 (0.0798) loss_box_reg: 0.1609 (0.1609) loss_objectness: 0.0163 (0.0163) loss_rpn_box_reg: 0.0397 (0.0397) time: 2.3162 data: 0.7499 max mem: 7369 Epoch: [19] [12/13] eta: 0:00:01 lr: 0.005000 loss: 0.1864 (0.1879) loss_classifier: 0.0552 (0.0571) loss_box_reg: 0.1126 (0.1125) loss_objectness: 0.0063 (0.0071) loss_rpn_box_reg: 0.0096 (0.0112) time: 1.4971 data: 0.0855 max mem: 7369 Epoch: [19] Total time: 0:00:19 (1.5027 s / it)
Aqui usamos 20 capas y 2 clases.
dataset_test = CraterDataset('/content/craters/test', get_transform(train=False))
data_loader_test = torch.utils.data.DataLoader(
dataset_test, batch_size=1, shuffle=False, num_workers=2,
collate_fn=utils.collate_fn)
model = get_model_bbox(num_classes)
# Define colors for bounding boxes
color_inference = np.array([0.0,255.0,0.0])
color_label = np.array([255.0,0.0,0.0])
# Score value thershold for displaying predictions
detection_threshold = 0.7
# to count the total number of images iterated through
frame_count = 0
# to keep adding the FPS for each image
total_fps = 0
!mkdir ./results
model.eval()
for i, data in enumerate(data_loader_test):
# get the image file name for predictions file name
image_name = 'image no:' + str(int(data[1][0]['image_id']))
model = model.to(device)
model_image = data[0][0]
cv2_image = np.transpose(model_image.numpy()*255,(1, 2, 0)).astype(np.float32)
cv2_image = cv2.cvtColor(cv2_image, cv2.COLOR_RGB2BGR).astype(np.float32)
# add batch dimension
model_image = torch.unsqueeze(model_image, 0)
start_time = time.time()
with torch.no_grad():
outputs = model(model_image.to(device))
end_time = time.time()
# get the current fps
fps = 1 / (end_time - start_time)
# add `fps` to `total_fps`
total_fps += fps
# increment frame count
frame_count += 1
# load all detection to CPU for further operations
outputs = [{k: v.to('cpu') for k, v in t.items()} for t in outputs]
# carry further only if there's detected boxes
if len(outputs[0]['boxes']) != 0:
boxes = outputs[0]['boxes'].data.numpy()
scores = outputs[0]['scores'].data.numpy()
# filter out boxes according to `detection_threshold`
boxes = boxes[scores >= detection_threshold].astype(np.int32)
scores = np.round(scores[scores >= detection_threshold],2)
draw_boxes = boxes.copy()
# draw the bounding boxes and write the class name on top of it
for j,box in enumerate(draw_boxes):
cv2.rectangle(cv2_image,
(int(box[0]), int(box[1])),
(int(box[2]), int(box[3])),
color_inference, 2)
cv2.putText(img=cv2_image, text="Crater",
org=(int(box[0]), int(box[1] - 5)),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale= 0.3,color= color_inference,
thickness=1, lineType=cv2.LINE_AA)
cv2.putText(img=cv2_image, text=str(scores[j]),
org=(int(box[0]), int(box[1] + 8)),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale= 0.3,color= color_inference,
thickness=1, lineType=cv2.LINE_AA)
# add boxes for labels
for box in data[1][0]['boxes']:
cv2.rectangle(cv2_image,
(int(box[0]), int(box[1])),
(int(box[2]), int(box[3])),
color_label, 2)
cv2.putText(img=cv2_image, text="Label",
org=(int(box[0]), int(box[1] - 5)),
fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale= 0.3,color= color_label,
thickness=1, lineType=cv2.LINE_AA)
# set size
plt.figure(figsize=(10,10))
plt.axis("off")
# convert color from CV2 BGR back to RGB
plt_image = cv2.cvtColor(cv2_image/255.0, cv2.COLOR_BGR2RGB)
plt.imshow(plt_image)
plt.show()
cv2.imwrite(f"./results/{image_name}.jpg", cv2_image)
print(f"Image {i + 1} done...")
print('-' * 50)
print('TEST PREDICTIONS COMPLETE')
avg_fps = total_fps / frame_count
print(f"Average FPS: {avg_fps:.3f}")
Image 1 done... --------------------------------------------------
Image 2 done... --------------------------------------------------
Image 3 done... --------------------------------------------------
Image 4 done... --------------------------------------------------
Image 5 done... --------------------------------------------------
Image 6 done... --------------------------------------------------
Image 7 done... --------------------------------------------------
Image 8 done... --------------------------------------------------
Image 9 done... --------------------------------------------------
Image 10 done... --------------------------------------------------
Image 11 done... --------------------------------------------------
Image 12 done... --------------------------------------------------
Image 13 done... --------------------------------------------------
Image 14 done... --------------------------------------------------
Image 15 done... --------------------------------------------------
Image 16 done... --------------------------------------------------
Image 17 done... --------------------------------------------------
Image 18 done... --------------------------------------------------
Image 19 done... -------------------------------------------------- TEST PREDICTIONS COMPLETE Average FPS: 7.890
Estamos usando un treshold de 0.7, por eso los cuadrados que salen señalan aquellos sitios donde piensa que hay un 70% de probabilidad de encontrar un crater.
Los recuadros de color verde señala donde cree que hay crateres segun como hemos entrenado a nuestro modelo. Como hemos entrenado con pocas capas para asi disminuir el tiempo de espera, vemos que no señala del todo bien. Sin embargo, las etiquetas que son los recuadros azules se siguen manteniendo en el lugar correcto ya que son suepr especificas mostrando de manera correcta los crateres.
Esto es un error que tuvimos una de las primeras veces que tratamos de realizar este codigo, que los labels nos salian descuadrados, ya que le metimos una funcion de one epoch mal definida.